Tag: httpclient

java中的HttpClient

我想使用一个简单的HttpClient。 但是,看来sun.net.www.http.HttpClient是无法访问的。 此外,com.ibm.ws.http.HTTPConnection – 似乎更支持http服务器而不是客户端。 为什么? 因为当我创建一个HttpConnection实例时,它有一个我应该写的“getHttpResponse”。 无论如何使用IBM HttpConnection for HttpClient? 或者,我可以使用任何标准的httpClient代码吗? 谢谢。

SSLPeerUnverifiedException:peer未经过身份validation

再一次,SSLPeerUnverified的沉闷问题,但我没有使用自签名证书。 我尝试使用https连接到主机。 该主机具有正确的证书,Firefox和HttpsUrlConnection都没有任何问题。 无论如何尝试使用HttpClient进行连接,我都会遇到可怕的exception。 有什么线索吗? 或者提示哪里看得更近? 谢谢! 编辑:调试输出 main,处理exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target main,getSession()中的IOException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

如何使用DefaultHttpClient写入OutputStream?

如何使用org.apache.http.impl.client.DefaultHttpClient获取OutputStream ? 我正在寻找一个输出流的长字符串。 使用HttpURLConnection您可以像这样实现它: HttpURLConnection connection = (HttpURLConnection)url.openConnection(); OutputStream out = connection.getOutputStream(); Writer wout = new OutputStreamWriter(out); writeXml(wout); 有没有使用类似于我上面的DefaultHttpClient的方法? 如何使用DefaultHttpClient而不是HttpURLConnection写入OutputStream ? 例如 DefaultHttpClient client = new DefaultHttpClient(); OutputStream outstream = (get OutputStream somehow) Writer wout = new OutputStreamWriter(out);

在使用NTLM进行身份validation时,HttpClient 4.1.1返回401,浏览器工作正常

我正在尝试使用Apache / Jakarta HttpClient 4.1.1使用给定的凭据连接到任意网页。 为了测试这一点,我在运行的dev机器上安装了最少的IIS 7.5,其中一次只有一种身份validation模式处于活动状态。 基本身份validation工作正常,但每当我尝试登录时,Digest和NTLM都会返回401错误消息。这是我的代码: DefaultHttpClient httpclient = new DefaultHttpClient(); HttpContext localContext = new BasicHttpContext(); HttpGet httpget = new HttpGet(“http://localhost/”); CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials(AuthScope.ANY, new NTCredentials(“user”, “password”, “”, “localhost”)); if (!new File(System.getenv(“windir”) + “\\krb5.ini”).exists()) { List authtypes = new ArrayList(); authtypes.add(AuthPolicy.NTLM); authtypes.add(AuthPolicy.DIGEST); authtypes.add(AuthPolicy.BASIC); httpclient.getParams().setParameter(AuthPNames.PROXY_AUTH_PREF, authtypes); httpclient.getParams().setParameter(AuthPNames.TARGET_AUTH_PREF, authtypes); } localContext.setAttribute(ClientContext.CREDS_PROVIDER, credsProvider); […]

HttpClient警告:Cookie被拒绝:非法域属性

我正在使用HttpClient最新版本(4.x)。 而现在我正在尝试做一个GET请求。 我只是发布了一个Get请求。 这是我的代码; public class Poster { static boolean routing1 = true, routing2 = true; static int counter1 = 0, counter2 = 0; DefaultHttpClient oHtp = null; HttpGet oHGet = null; HttpResponse oHRes = null; private void test(String fullAddress) throws Exception { oHtp = new DefaultHttpClient(); oHGet = new HttpGet(fullAddress); HttpResponse response = oHtp.execute(oHGet); […]

获取负载测试的NoHttpResponseException

我正在为我的应用程序运行负载测试。 我有两台服务器:一台是我的应用程序,另一台是负责让我回复的虚拟服务器。 在我的虚拟服务器中,我有以下jsp代码: 我正在使用tomcat7运行应用程序。 我的server.xml连接池(在两个服务器中)看起来像: 我从服务器运行的java代码是: HttpPost post = new HttpPost(bidderUrl); post.setHeader(“Content-Type”, “application/json”); // I’m using http client with ThreadSafeClientConnManager // total conn = 500, max conn per route = 100, timeout=500millis HttpClient httpClient = httpClientFactory.getHttpClient(); try { post.setEntity(new StringEntity(jsobBidRequest)); HttpResponse response = httpClient.execute(post); … catch (NoHttpResponseException e){ log.error(e); } 我正在运行带有50个并发线程的Jmetter(没有循环),并且得到了很多例外: org.apache.http.NoHttpResponseException The target server […]

HttpClient 4.1的SSL“Peer Not Authenticated”错误

我正在构建一个简单的应用程序监视器来轮询我们的一个API URL并向我们发送电子邮件,如果它无法从响应中获取HTTP 200状态代码(这表明我们的API因某种原因而关闭)。 我正在使用HttpClient 4.1 (这很重要,因为它的API与3.x差别很大 )。 我们的API使用SSL是安全的,但输入: http://example.com/our-api 进入Web浏览器重定向到 https://example.com/our-api 没有造成任何错误。 当HttpClient尝试访问此URL( http://example.com/our-api )时,它会因javax.net.ssl.SSLPeerUnverifiedExceptionexception而失败,并显示一条消息: 同行未经过身份validation 我发现这对其他人来说发生了很多事情,正如这篇文章所certificate的那样(这也提供了一些规避这个问题的方法 – 我今晚将尝试和实施的解决方案)。 这个其他post(和其他类似的post)没有做的是解释为什么这首先发生! 所以,而不是问“我该如何解决这个问题?” 我想我会问“ 为什么会发生这种情况? ”在我提前解决其中一个建议的解决方案之前,我想知道我试图解决的问题是什么;-)

使用Apache HttpClient,为什么我的连接超时不起作用?

在调用doGetConnection()时,我的httpclient实现偶尔会抛出exception。 但是,我有以下超时设置 _moHttpClient.setHttpConnectionFactoryTimeout(30000); 它看起来几乎像我的超时没有被拿起。 是否有其他我需要设置超时以确保不再发生此行为

使用HttpClient进行HTTP连接池

如何使用HttpClient创建连接池? 我必须经常连接到同一台服务器。 是否值得创建这样的游泳池? 是否可以保持实时连接并将其用于各种请求,如果是,我该怎么办? 我正在使用Apache HTTP Client开发Java。

java.lang.NoSuchFieldError:INSTANCE

当我试图通过StormSubmitter提交我的拓扑时,我得到了 – Caused by: java.lang.NoSuchFieldError: INSTANCE at org.apache.http.impl.io.DefaultHttpRequestWriterFactory.(DefaultHttpRequestWriterFactory.java:52) 我正在使用Spring。 我没有在Spout / Bolt构造函数中初始化HttpClient。 相反,它是在一个类的构造函数中初始化的,该类是在bolt的prepare()方法中从Spring Context获取的 代码结构如下 – SomeBolt.java @Component public class SomeBolt extends BaseRichBolt { private OutputCollector _collector; private SomeClient someClient; @Override public void prepare(Map conf, TopologyContext context, OutputCollector collector) { _collector = collector; someClient = AppContext.getBean(SomeClient.class); } } SomeClient.java @Component public class SomeClient { private […]