695 views
この記事は最終更新から 1063日 が経過しています。
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");
: 以降省略
}
アクセス数(直近7日): ※試験運用中、BOT除外簡易実装済2025-12-14: 0回 2025-12-13: 0回 2025-12-12: 1回 2025-12-11: 0回 2025-12-10: 0回 2025-12-09: 0回 2025-12-08: 2回