此调用的User-Agent标头应该是什么?

时间:2019-06-14 15:52:53

标签: postman okhttp3 ltpa

此代码段摘自Postman。从邮递员那里获取的cURL可以正常工作,并且从邮递员生成的Java代码会为特定的调用提供200响应。但是响应主体不在那儿。 用户代理标头应该是什么? 我是否还需要在Java代码中使用此邮递员令牌? 我是否需要添加其他标题? 我的目标是从此GET调用中获取一些数据。

    OkHttpClient client = new OkHttpClient();
    Request request = new Request.Builder()
            .url("http://blahblah=60041441&attributes=blah,blah,blah")
            .get()
            .addHeader("User-Agent", "PostmanRuntime/7.13.0")
            .addHeader("Accept", "*/*")
            .addHeader("Cache-Control", "no-cache")
            .addHeader("Postman-Token", "7af03a15-blah,364c160f-92d7-459f-b261-4993801944a7")
            .addHeader("Host", "blahblah.na.blah.net:9081")
            .addHeader("cookie", "someURL=1800; com.ibm.isim.lastActivity=blahblahToekn; JSESSIONID=blahblahblah:1ajblahi8; LtpaToken2=blahblahbalah")
            .addHeader("accept-encoding", "gzip, deflate")
            .addHeader("Connection", "keep-alive")
            .addHeader("cache-control", "no-cache")
            .addHeader("User-Agent", "postman")
            .build();

    okhttp3.Response response= client.newCall(request).execute();
    System.out.println(response.body().toString());

1 个答案:

答案 0 :(得分:0)

假设下面的简单get请求就可以了,其他所有细节都可以省略:

    Request request = new Request.Builder()
            .url("http://blahblah=60041441&attributes=blah,blah,blah")
            .get()
            .build();

大多数标头(如用户代理,accept-encoding等)将由OkHttp客户端自动添加,因此您可以安全地从请求中删除标头:

            .addHeader("User-Agent", "PostmanRuntime/7.13.0")
            .addHeader("Host", "blahblah.na.blah.net:9081")
            .addHeader("accept-encoding", "gzip, deflate")
            .addHeader("Cache-Control", "no-cache")
            .addHeader("Connection", "keep-alive")
            .addHeader("cache-control", "no-cache")
            .addHeader("User-Agent", "postman")

由于 / 是通配符,因此假设您也可以跳过它。

            .addHeader("Accept", "*/*")

如果端点要求身份验证,则假设在发送此特定的Get请求之前,您需要先发送身份验证请求。要自动处理身份验证cookie,您可以尝试将CookieJar添加到客户端,以便也可以将其省略(假设标头名称以某种方式更改了,顺便说一句?):

            .addHeader("Postman-Token", "7af03a15-blah,364c160f-92d7-459f-b261-4993801944a7")
            .addHeader("cookie", "someURL=1800; com.ibm.isim.lastActivity=blahblahToekn; JSESSIONID=blahblahblah:1ajblahi8; LtpaToken2=blahblahbalah")

您还可以检查有关question的答案,以了解添加CookieJar的方法。