0

此代码片段取自 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());
4

1 回答 1

0

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

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

大多数标头(如 user-agent、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")

您还可以查看有关添加 CookieJar 的方法的问题的答案。

于 2019-06-15T10:32:46.797 回答