(33) AndroidアプリからWebサーバーにUserAgentを渡す。

投稿者: | 2023年1月15日

189 views

この記事は最終更新から 517日 が経過しています。

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");
    : 以降省略
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)