在Apache HttpClient中设置套接字缓冲区大小
如何在Apache HTTPClient版本4.3.3中设置套接字缓冲区大小? 解决方案 HttpClient client = new DefaultHttpClient(); client.getParams().setParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE, 128 * 1024); HttpPost post = new HttpPost(url); String res = null; try { post.addHeader("Connection", "Keep-Alive"); post.addHeader("Content-Name", selectedFile.getName()); post.setEntity(new ByteArrayEntity(fileBytes)); HttpResponse
6 2024-04-04
编程技术问答社区
如何在java中进行批量http调用
我正在尝试通过HTTP访问另一个服务,以使用HTTPCLCLIENT获取数据. URI应该看起来像端点:80/.../itemID. 我想知道是否有办法进行批次调用来指定一组ItemID?我确实找到了某人建议.当创建请求时,我会建议.通过此操作,获取所有数据后,如何发布客户端? 另外,似乎这种方法仍然需要获得一个响应,然后发送另一个请求?这有可能以异步的形式这样做吗?顺便说一句,在这种情况下,我似乎无法使用Asynchttpclient. 由于我对httpclient几乎一无所知,所以这个问题看起来很愚蠢.真的希望有人可以帮助我解决这个问题. 解决方案 服务器上的API支持 API一次支持一次请求多个ID(例如,使用表单http://endpoint:80/.../itemId1,itemId2,itemId3的URL)很小.检查API文档以查看是否可用,因为如果这样,那将是最好的解决方案. 持续连接 看起来像apache httpclient
2 2024-03-29
编程技术问答社区
将Curl命令转换为Java/Android
我正在开发两个应用程序 - 第一个是使用Spring MVC 3 的Web应用程序 第二个是同一Web应用程序的Android应用程序. 在这两者中,我都在整合基本身份验证,以使用API​​在该站点上对用户进行身份验证. 在API教程中,遵循curl命令以身份验证用户 - $ curl -u -U用户名:密码insert_url_here -d'[xml body there]' 我没有得到,如何在Java和Android代码中转换此命令. 请指导我.我完全被困在这里. 解决方案 使用httpclient 4,您需要执行以下操作: 创建客户端: cloceablehttpclient client = httpclientbuilder.create().build(); 创建邮政请求: 最终的httppost postrequest = new httppost(sample_url); 设置邮政请求的主体:
2 2024-03-29
编程技术问答社区
HTTPClient在使用Basic Auth时发出了两个请求?
我一直在使用HTTPCLIENT版本4.1.2尝试访问需要基本身份验证的HTTP API的休息.这是客户端代码: DefaultHttpClient httpClient = new DefaultHttpClient(new ThreadSafeClientConnManager()); // Enable HTTP Basic Auth httpClient.getCredentialsProvider().setCredentials( new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials(this.username, this.password)); HttpHost proxy = new HttpHost(this.proxyURI.getHost(), this.proxyURI.getPort()); httpClient.g
0 2024-03-29
编程技术问答社区
用RestTemplate进行基本认证(3.1)
我正在尝试使用Java复制以下卷曲命令: curl -v -u user:pass http://myapp.com/api 此命令返回一些JSON数据. 我的越野车Java实现如下: @Test public void callTest() { RestTemplate restTemplate = createRestTemplate("user", "pass"); URI uri = new URI("http://myapp.com/api"); String res = restTemplate.getForObject(uri, String.class); } private static RestTemplate createRestTemplate(String username, String password) { UsernamePasswordCredentials cred = new Usernam
HttpClientBuilder基本认证
自HTTPCLIENT 4.3以来,我一直在使用HTTPClientBuilder.我正在连接到具有基本身份验证的REST服务.我将凭据设置如下: HttpClientBuilder builder = HttpClientBuilder.create(); // Get the client credentials String username = Config.get(Constants.CONFIG_USERNAME); String password = Config.get(Constants.CONFIG_PASSWORD); // If username and password was found, inject the credentials if (username != null && password != null) { CredentialsProvider provider = new BasicCredentialsProvider()
0 2024-03-29
编程技术问答社区
传递给Java应用的哪些Java属性可以用http代理进行验证?
我有一个Java应用程序,该应用程序正在尝试通过HTTP代理访问Web服务. Java应用程序是第三方应用程序,我们无法访问源代码. 它的启动可以通过传递Java启动参数等外配置. 我想知道一个可以通过的Java属性是什么,以便该应用可以使用登录的用户NTLM凭据来验证代理连接? 当我将https.proxyhost和https.proxyport(即-dhttps.proxyhost = abcd ...提交给JVM命令行)时,我确实看到日志中的差异.现在,它在下面的消息中失败. [WrapperSimpleAppMain] [AuthChallengeProcessor] ntlm authentication scheme selected INFO | jvm 5 | 2015/06/03 14:49:25 | 2015-06-03 14:49:25,380 INFO [WrapperSimpleAppMain] [HttpMethodDirect
0 2024-03-27
编程技术问答社区
AWS SDK: java.lang.NoSuchMethodError
每当我尝试通过AWS SDK发送邮件时,我都会得到以下例外: java.lang.NoSuchMethodError: org.apache.http.params.HttpConnectionParams.setSoKeepalive(Lorg/apache/http/params/HttpParams;Z)V 我在这里有一个提示( https://github.com/aws/aws/AWS-SDK-JAVA/eskity/422 )可能出了什么问题:显然,httpclient和httpcore版本之间存在一些冲突,但是无论我尝试哪种版本,我都无法弄清楚. 的一部分.classpath 文件:
2 2024-03-22
编程技术问答社区
什么版本的httpclient能与Amazon SDK v 1.11.5兼容?
我使用的是Amazon Java SDK,版本1.11.5(我在我的Web-Inf/lib目录中包括AWS-JAVA-SDK-1.11.5.11.5.JAR).我需要包含哪个版本的Apache HTTPClient库,该库与此版本的AWS SDK兼容?我尝试了httpclient-4.3.4.jar,但是我得到以下错误 15:34:25,366 ERROR [io.undertow.request] (default task-34) UT005023: Exception handling request to /pluginwiris_engine/app/service: java.lang.NoSuchMethodError: org.apache.http.conn.ssl.SSLConnectionSocketFactory.(Ljavax/net/ssl/SSLContext;Ljavax/net/ssl/HostnameVerifier;)V
0 2024-03-22
编程技术问答社区
用HttpClient 4.3在401上自动重试并发送特定请求
我在应用程序中使用特定的身份机制. 要登录应用程序将登录请求发送到特定的URL/login/,并返回存储在Cookie中的会话令牌. 在任何时候,服务器都可以被服务器无效,其他请求将导致401.我希望httpclient自动检测401错误,重做/登录/请求一次并自动重试原始请求. > > 我尝试在httpclients.custom().setRetryhandler中设置httprequestretryhandler,但似乎它没有处理401错误. 做请求功能的最佳方法是什么? 解决方案 您可以使用OkhttpClient来满足您的需求.它准确地实现了您想要的. 处理身份验证. OkHttp can automatically retry unauthenticated requests. When a response is 401 Not Authorized, an Authenticator is asked to supply credent
0 2024-03-20
编程技术问答社区
用httpclient 4.x认证一个请求
我有一个HttpClient实例,该实例由许多线程共享.我想使用它来提出一个认证的请求.因为只能对单个请求进行身份验证,所以我不想修改HttpClient实例,如HttpContext context = null; if(feedSpec.isAuthenticated()) { context = new BasicHttpContext(); CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(feedSpec.getHttpUsername(), feedSpec.getHttpPassword())); context.setAttribute(ClientContext.CREDS_PROVIDER, credsProvider); conte
8 2024-03-20
编程技术问答社区
httpclient版本和Apache Spark之间的冲突
我正在使用Apache Spark开发Java应用程序.我使用此版本: org.apache.spark spark-core_2.10 1.2.2 在我的代码中,有一个过渡依赖性: org.apache.httpcomponents httpclient 4.5.2 我将应用程序包装到一个JAR文件中.使用spark-submit在EC2实例上部署它时,我会得到此错误. Caused by: java.lang.NoSuchFieldError: INSTAN
10 2024-02-29
编程技术问答社区
以编程方式为NiFi InvokeHTTP提供不同的证书
我在NIFI中有一个要求,我在不同的HTTP s 休息端点上有循环,并为某些端点提供不同的证书,并为某些其他端点提供不同的用户名/密码. 我使用InvokeHTTP处理器发送请求,尽管URL采用表达语言,但我无法用表达式设置SSLContextService. 另外,我考虑使用ExecuteScript调用这些端点,但是AS 在Stackoverflow Post 中列出;我仍然不知道如何通过脚本编程地调用外部服务. 任何帮助. 解决方案 只是为了娱乐,创建了调用http的时髦脚本. 肯定可以避免使用它.我相信InvokeHTTP处理器几乎满足所有需求. 但是..要致电测试休息服务:/post at https://httpbin.org 流量:GenerateFlowFile(生成身体) - > EcecuteGroovyScript(呼叫服务) GenerateFlowFile生成的身体:{"id":123, "txt":"aaabbbc
4 2024-02-28
编程技术问答社区
HttpClient在获取新域名后产生SSLException
最近,我获得了一个新的域名,以与现有的Android应用程序一起使用.我还从Trusted CA(Comodo)购买了SSL证书.当我使用Web浏览器浏览新域时,一切都按预期工作 - SSL证书没有错误.与HttpUrlConnection相同,但由于某种原因,apaches HttpClient生成一个sslexception: javax.net.ssl.sslexception:证书中的主机名不匹配:my.new.domain!= my.old.domain或my.old.domain.domain 更有趣的是,我尝试使用的某些设备在更改后约一周工作了,然后停止工作.其他设备立即停止工作. 如果我在客户端代码中使用旧域名,则一切正常. 我正在使用4.3.3 A> httpClient的Android.我意识到,转换为httpurlconnection确实可以解决我的问题,但是我对为什么会发生这种情况感兴趣 - httpclient从何处拿起旧域名?服务器上是
8 2024-02-28
编程技术问答社区
HttpClient错误
我正在使用HTTP客户端通过Web服务器上的PHP脚本执行一些简单的SNMP操作.因此,PHP脚本会聆听以获取参数.这是我的代码: EditText host = (EditText)findViewById(R.id.editText); EditText port = (EditText)findViewById(R.id.editText2); EditText community = (EditText)findViewById(R.id.editText3); String url = "http://192.168.0.102/za/getstatus.php?host=" + host.getText().toString() + "&port=" + port.getText().toString() + "&com=" + community.getText().toString()
0 2024-02-28
编程技术问答社区
嘲弄HttpClient.execute问题。洛克托
我正在尝试测试此方法. @Override public JSON connectResource() throws IOException { //get the location and credentials for the certificates System.setProperty("javax.net.ssl.trustStore", "C:/Program Files/Java/jdk1.7.0_40/jre/lib/security/cacerts"); System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); HttpRequest httpRequest = new HttpGet(url); System.out.println("hello"); httpRequest.addHeader("Accept", "applicatio
12 2024-02-28
编程技术问答社区
Java通过Apache IOUtils转换的字符串取回InputStream
我正在使用库字符串格式,该格式使用org.apache.commons.io.IOUtils a a 转换为 public static String get(Pair token, String url) { CloseableHttpClient httpClient = HttpClients.createDefault(); try { HttpGet getRequest = new HttpGet(url); getRequest.addHeader("Cookie", token.getLeft() + ";" + token.getRight()); getRequest.addHeader("accept", "application/json;odata=verbose"); HttpResponse response = httpClient.ex
2 2024-02-28
编程技术问答社区
带有Content-Disposition的HttpClient帖子
晚上好. 通常我正在处理name1=value1&name2=value2之类的邮政请求,而我的代码是 List nameValuePairs = new ArrayList(); nameValuePairs.add(new BasicNameValuePair("name1", "value1")); httppost.setEntity(new UrlEncodedFormEntity("name2","value2"); 但是现在我有这样的帖子 -----------------------------17911109517875 Content-Disposition: form-data; name="PERSON*1[F*2][2664]" value1 -----------------------------17911109517875 Content-Disposition: form
2 2024-02-28
编程技术问答社区
得到 "SocketException: 没有到主机的路由",而不是预期的 "SocketTimeoutException"。
我使用DefaultHttpClient来实现几个下劳德.在缺少enternet的情况下,我只会第一次下载SocketTimeoutException,而在接下来的下载中,我会得到java.net.SocketException: No route to host.为什么会发生?我为每个请求使用新的httpClient.我需要为每个请求获取SocketTimeoutException,因为我应该在下载之间保持超时延迟. 解决方案 结帐此答案: android主持 android app-java.net.socket.net.socketexception:无路由主持 和在这里一些解释: 您的192.168.1.114地址是DHCP地址(动态)由 您的路由器到PC.结果,模拟器可见. ,但取决于您的WiFi的设置方式,Android可能在 不同的路由器/子网,看不到192.168.1.114.您可以检查 通过将192.168.1.114键入Andro
12 2024-02-28
编程技术问答社区
从Json数组中提取信息
全部, 我有以下json响应,请求获得用户列表.我只想使用用户名来绘制一个用户的ID.例如,如果我想要用户名test1的ID,该怎么做?任何帮助将不胜感激. { "displayLength": "4", "iTotal": "20", "users": [ { "id": "2", "userName": "Test1", "Group": { id:1 name:"Test-Admin" } }, { "id": "17", "userName": "Test2", "Group": { id:1
20 2024-02-28
编程技术问答社区