220 views
この記事は最終更新から 632日 が経過しています。
1. やりたいこと
Androidアプリから Webサーバーに HTTP接続する。
その際に、アクセス元のアプリを識別するために独自に定義した UserAgentを渡したい。
2. やってみる
ここでは、過去記事でも使用している OkHttpを使った実装とする。
(1) Interceptorクラスを作る。
package mylib; import java.io.IOException; import okhttp3.Interceptor; import okhttp3.Request; import okhttp3.Response; // サーバー側にアクセス可能なクライアントを User-Agent名で制限する。 public class UserAgentInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { Request req = chain.request() .newBuilder() .addHeader("User-Agent", "MyOriginalApp") // UserAgent名 .build(); return chain.proceed(req); } }
(2) HTTPリクエスト発行時に UserAgent情報を付加する。
private void sendHttpRequest(){ String url = "http://www.dogrow.net/blog33"; OkHttpClient httpClient = new OkHttpClient.Builder() .addInterceptor(new UserAgentInterceptor()) .build(); Request request = new Request.Builder().url(url).build(); httpClient.newCall(request).enqueue(new Callback(){ : 以降省略 }); }
(3) Server側プログラムで UserAgentを参照する。
PHPの場合
$_SERVER['HTTP_USER_AGENT'];
Java Servletの場合
protected void doGet(HTTPServletRequest request, ---以降省略 ){ String strUserAgent = request.getHeader("user-agent"); : 以降省略 }