イグニッションプロジェクトで同じ問題が発生した後、loopj/android-async-httpを使用しています。
承認ヘッダーなしでGETを送信すると、正常に機能します。
AsyncHttpClient client = new AsyncHttpClient();
client.get(url, params, responseHandler);
ジャージーサーバーに送信していますが、ログフィルターに期待されるデータが表示されます。
INFO: 1 * Server in-bound request
1 > GET http://mydomain.com/myresource/
1 > host: mydomain.com
1 > accept-encoding: gzip
1 > user-agent: android-async-http/1.4.0 (http://loopj.com/android-async-http)
1 > connection: Keep-Alive
認証されたGETも同様に機能します。
同じURLへのPOSTリクエストで同じことを行う場合:
AsyncHttpClient client = new AsyncHttpClient();
String auth = user + ":" + pass;
client.addHeader("Authorization", "Basic " + Base64.encodeToString(auth.getBytes(), Base64.DEFAULT));
client.post(context, url, entity, "application/json", responseHandler);
サーバーは、私が期待する複数の情報を表示せず、その理由がわかりません。
INFO: 2 * Server in-bound request
2 > POST http://mydomain.com/myresource/
2 > host: mydomain.com
2 > accept-encoding: gzip
2 > authorization: Basic GFzasomethingvalidhereXN0
2 > connection: Keep-Alive
「Content-Type」ヘッダーが表示されないのはなぜですか?これは、私のジャージーリソースがアプリケーション/jsonデータを消費するように注釈が付けられているために私が抱えている主な問題です
「user-agent」ヘッダーが表示されないのはなぜですか?
私のジャージーリソース:
@Service
@Path("/myresource/")
public class MyResource {
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public MyDTO myEndPointMethod(MyDTO myDTO) {
//something cool here
}