Questions tagged «httpclient»

请勿使用-使用[apache-commons-httpclient],[apache-httpclient-4.x],[java-http-client],[dotnet-httpclient]或[angular-httpclient]

13
接受带有自签名证书的HTTPS连接
我正在尝试使用HttpClientlib 进行HTTPS连接,但是问题在于,由于该证书不是由公认的证书颁发机构(CA)签名的,例如Verisign,GlobalSIgn等,这些证书都列在Android可信证书中,我不断javax.net.ssl.SSLException: Not trusted server certificate。 我已经看到了一些解决方案,您只接受所有证书,但是如果我想问用户该怎么办? 我想要一个类似于浏览器的对话框,让用户决定是否继续。最好是我想使用与浏览器相同的证书库。有任何想法吗?
153 android  ssl  https  httpclient  ca 

5
通过HttpClient将空主体发布到REST API
我尝试调用的API要求我执行POST,但正文为空。我是使用WCF Web API HttpClient的新手,我似乎找不到要写空正文的写代码。我找到了对某些HttpContent.CreateEmpty()方法的引用,但我认为这不是针对Web API HttpClient代码的,因为我似乎找不到该方法。


4
PHP GuzzleHttp。如何使用params进行发布请求?
如何使用GuzzleHttp(5.0版)发出发布请求。 我正在尝试执行以下操作: $client = new \GuzzleHttp\Client(); $client->post( 'http://www.example.com/user/create', array( 'email' => 'test@gmail.com', 'name' => 'Test user', 'password' => 'testpassword' ) ); 但是我得到了错误: PHP致命错误:消息为“没有方法可以处理电子邮件配置密钥”的未捕获异常'InvalidArgumentException'

10
如何将Apache HTTP API(旧版)添加为Android M的build.grade的编译时依赖项?
如前所述这里,Android的M将不支持的Apache HTTP API。该文档指出: 请改用HttpURLConnection类。 要么 要继续使用Apache HTTP API,必须首先在build.gradle文件中声明以下编译时依赖性: android {useLibrary'org.apache.http.legacy'} 我已经将项目对HttpClient的大部分用法转换为HttpURLConnection,但是,我仍然需要在一些领域中使用HttpClient。因此,我试图将“ org.apache.http.legacy”声明为编译时依赖项,但在build.gradle中遇到错误: 找不到Gradle DSL方法:“ useLibrary()” 我的问题是:如何在项目中将“ org.apache.http.legacy”声明为编译时依赖项? 任何帮助深表感谢。谢谢


7
如何使用Python登录网站?
我该怎么做?我试图输入一些指定的链接(使用urllib),但是要执行此操作,我需要登录。 我从网站获得此资源: <form id="login-form" action="auth/login" method="post"> <div> <!--label for="rememberme">Remember me</label><input type="checkbox" class="remember" checked="checked" name="remember me" /--> <label for="email" id="email-label" class="no-js">Email</label> <input id="email-email" type="text" name="handle" value="" autocomplete="off" /> <label for="combination" id="combo-label" class="no-js">Combination</label> <input id="password-clear" type="text" value="Combination" autocomplete="off" /> <input id="password-password" type="password" name="password" value="" autocomplete="off" /> <input id="sumbitLogin" class="signin" type="submit" value="Sign In" …


9
使用HttpRequest.execute()的异常:无效使用SingleClientConnManager:仍分配了连接
我正在使用google-api-client-java 1.2.1-alpha执行POST请求,并在我执行execute()HttpRequest时得到以下堆栈跟踪信息。 在我捕获并忽略从先前POST到相同URL的403错误并重新用于后续请求的传输之后,它立即发生。(这是将多个条目插入同一ATOM提要的循环)。 403之后,我应该做些什么来“清理”吗? Exception in thread "main" java.lang.IllegalStateException: Invalid use of SingleClientConnManager: connection still allocated. Make sure to release the connection before allocating another one. at org.apache.http.impl.conn.SingleClientConnManager.getConnection(SingleClientConnManager.java:199) at org.apache.http.impl.conn.SingleClientConnManager$1.getConnection(SingleClientConnManager.java:173) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:390) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554) at com.google.api.client.apache.ApacheHttpRequest.execute(ApacheHttpRequest.java:47) at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:207) at au.com.machaira.pss.gape.RedirectHandler.execute(RedirectHandler.java:38) at au.com.machaira.pss.gape.ss.model.records.TableEntry.executeModification(TableEntry.java:81) 为什么下面的代码会尝试获取新的连接?

9
Apache HttpClient临时错误:NoHttpResponseException
我有一个Web服务正在接受XML的POST方法。它工作正常,然后在某些随机情况下,无法与服务器通信,并抛出message,并抛出IOException The target server failed to respond。后续调用工作正常。 当我打一些电话,然后让我的应用程序闲置10-15分钟时,通常会发生这种情况。在此之后我进行的第一个调用将返回此错误。 我尝试了几件事... 我像这样设置重试处理程序 HttpRequestRetryHandler retryHandler = new HttpRequestRetryHandler() { public boolean retryRequest(IOException e, int retryCount, HttpContext httpCtx) { if (retryCount >= 3){ Logger.warn(CALLER, "Maximum tries reached, exception would be thrown to outer block"); return false; } if (e instanceof org.apache.http.NoHttpResponseException){ Logger.warn(CALLER, "No response …
76 java  httpclient 

3
HttpClient请求抛出IOException
下面的代码将引发带有消息的IOException:“指定的注册表项不存在。” HttpClient client = new HttpClient(); Uri uri = new Uri("http://www.google.com"); client.GetAsync(uri); 这只是在Main中的控制台应用程序中。似乎该错误由mscorlib.dll!Microsoft.Win32.RegistryKey.Win32Error(int errorCode,字符串str)引发。我不知道为什么会引发此错误或如何开始调试它。 编辑堆栈跟踪: 在Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode,String str) 它只有1条线,没有内部异常等。 调用堆栈为: mscorlib.dll!Microsoft.Win32.RegistryKey.Win32Error(int errorCode, string str) + 0x189 bytes mscorlib.dll!Microsoft.Win32.RegistryKey.GetValueKind(string name) + 0x7f bytes System.dll!System.Net.HybridWebProxyFinder.InitializeFallbackSettings() + 0x9e bytes [Native to Managed Transition] [Managed to Native Transition] System.dll!System.Net.AutoWebProxyScriptEngine.AutoWebProxyScriptEngine(System.Net.WebProxy proxy, bool useRegistry) + 0xd0 …

1
在Powershell中运行时与Visual Studio中运行时的HttpClient并发行为不同
我正在使用MS Graph API将数百万用户从本地AD迁移到Azure AD B2C,以在B2C中创建用户。我已经编写了一个.Net Core 3.1控制台应用程序来执行此迁移。为了加快进度,我正在同时调用Graph API。这很好-有点。 在开发过程中,从Visual Studio 2019运行时,我的性能达到了可接受的水平,但是为了测试,我从Powershell 7中的命令行运行。从Powershell中,对HttpClient的并发调用的性能非常糟糕。从Powershell运行时,HttpClient允许的并发调用数似乎是有限制的,因此,并发批处理中的调用(大于40至50个请求)将开始堆积。它似乎正在运行40至50个并发请求,同时阻止其余请求。 我不是在寻求异步编程方面的帮助。我正在寻找一种方法来解决Visual Studio运行时行为和Powershell命令行运行时行为之间的差异。从Visual Studio的绿色箭头按钮在发布模式下运行的行为符合预期。不从命令行运行。 我用异步调用填充任务列表,然后等待Task.WhenAll(tasks)。每次通话需要300到400毫秒。从Visual Studio运行时,它可以按预期工作。我并发执行1000个调用的批处理,每个处理都在预期的时间内完成。整个任务块比最长的单个调用花费几毫秒的时间。 当我从Powershell命令行运行相同的构建时,行为会改变。最初的40到50个通话会花费300到400毫秒,但是每个单独的通话时间会增加到20秒。我认为这些调用正在序列化,因此在其他等待时一次只执行40到50。 经过数小时的反复试验,我能够将其范围缩小到HttpClient。为了找出问题,我使用执行Task.Delay(300)并返回模拟结果的方法模拟了对HttpClient.SendAsync的调用。在这种情况下,从控制台运行的行为与从Visual Studio运行的行为相同。 我正在使用IHttpClientFactory,甚至尝试调整ServicePointManager的连接限制。 这是我的注册码。 public static IServiceCollection RegisterHttpClient(this IServiceCollection services, int batchSize) { ServicePointManager.DefaultConnectionLimit = batchSize; ServicePointManager.MaxServicePoints = batchSize; ServicePointManager.SetTcpKeepAlive(true, 1000, 5000); services.AddHttpClient(MSGraphRequestManager.HttpClientName, c => { c.Timeout = TimeSpan.FromSeconds(360); c.DefaultRequestHeaders.Add("User-Agent", "xxxxxxxxxxxx"); }) …

2
java.net.SocketException:Spring Rest模板中的连接重置
我这里有一个奇怪的问题。 在我重新启动客户端的tomcat服务器之前,以下代码可以正常工作。一旦我使用相同代码的最新war文件重启tomcat服务器(war文件中存在客户端程序),它将引发以下错误。我正在使用JDK 8。 下面是示例代码。从浏览器中,我可以从以下程序中使用的URL获得响应。但也无法使用Java程序或Postman获取数据。 package com.example.demo; import org.springframework.boot.CommandLineRunner; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; @Component public class TestService implements CommandLineRunner{ @Override public void run(String... args) throws Exception { download(); } private void download() { System.out.println("Started download"); try{ RestTemplate restTemplate = new RestTemplate(); String url = "https://www.nseindia.com/live_market/dynaContent/live_watch/stock_watch/niftyStockWatch.json"; byte[] forObject = restTemplate.getForObject(url, byte [].class); …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.