当前位置: 首页 > 面试题库 >

如何使用apache http客户端库4.1设置自定义User-Agent?

袁单鹗
2023-03-14
问题内容

如何使HTTPClient使用自定义User-Agent标头?

以下代码提交空的用户代理。我想念什么?

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;

public class TestHTTP {

        public static void main(String[] args) throws ClientProtocolException, IOException {
        HttpGet request = new HttpGet("http://tool.keepmeapi.com/echo");

        HttpContext HTTP_CONTEXT = new BasicHttpContext();
        HTTP_CONTEXT.setAttribute(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.10 (maverick) Firefox/3.6.13");
        request.setHeader("Referer", "http://www.google.com");

        HttpClient httpClient = new DefaultHttpClient();
        HttpResponse response = httpClient.execute(request, HTTP_CONTEXT);

        if (response.getStatusLine().getStatusCode() < 200 || response.getStatusLine().getStatusCode() >= 400) {
            throw new IOException("Got bad response, error code = " + response.getStatusLine().getStatusCode());
        }

        HttpEntity entity = response.getEntity();
        if (entity != null) {
            System.out.println(EntityUtils.toString(entity));
            EntityUtils.consume(entity);
        }
    }

}

问题答案:

线

request.setHeader("User-Agent", "MySuperUserAgent");

不见了。添加并享受。



 类似资料:
  • 我使用Jersey 1.0 http客户端调用资源并反序列化响应JSON,如下所示: 现在响应JSON有了一些新字段,我得到了以下异常: 如何将jackson的反序列化模式更改为NON-STRICT,以便它忽略新字段?

  • 问题内容: 使用Spring-WS时,如何在客户端动态设置自定义HTTP标头(不是SOAP标头)? 问题答案: 配置:

  • 问题内容: 我正在与socket.io聊天应用程序,我想用我的自定义客户端ID,而不是默认的(,)。连接时是否有任何发送自定义标识符的方式,或仅使用某种方式来跟踪每个ID的自定义名称?谢谢! 问题答案: 您可以在服务器上创建一个数组,并在其上存储自定义对象。例如,您可以存储Socket.io创建的ID和每个客户端发送到服务器的自定义ID: 在此示例中,您需要从每个客户端调用 storeClient

  • 我读了很多文章来寻找java应用程序的最佳Rest客户机,最后我发现将Jersey与ApacheHTTP客户机4.5结合使用非常好,但在很多文章中,我发现现在改型是最好的(我没有提到Volley,因为在我的例子中,我不需要API支持缓存)。 对于java客户机应用程序,改型是否更好。还是对Android来说更好?为什么我以前没有找到这个比较。。它们无法比较? 我可以比较一下它们的性能、连接池、它们

  • 由于我需要使用一些旧服务器,并且由于已从Java8中删除,因此我需要重新启用一些基于RC4的密码。如发行说明中所述,我们必须使用。由于我使用的是Apache HTTP客户端,因此无法找到执行此操作的方法。提前感谢!(我还发现了相当多的半挂车问题,但没有答案,所以想发布一个新的)

  • 如何转换react查询以适应自定义类型?? 注意:我在前端使用的是JavaScipt,而不是Typescript