Tag: apache httpclient 4.x

Parse在PHP中转义了JSON

我是PHP世界的新手,我在PHP中解析JSON时遇到了问题。 我想使用Apache HttpClient 4.x和Gson使用我的Java客户端将数据发布到PHP脚本。 我的JSON: [{“Knt_KntWatchId”:”15″,”type”:”INSERT”,”Knt_Nazwa1″:”a”},{…},…] 我使用HttpClient和Gson用Java发送它: List contacts = …; HttpPost post = new HttpPost(CONTACTS_SERVICE); List nameValuePairs = new ArrayList(); nameValuePairs.add(new BasicNameValuePair(“key”, AppConstants.KEY)); nameValuePairs.add(new BasicNameValuePair(“data”, new Gson().toJson(contacts))); post.setEntity(new UrlEncodedFormEntity(nameValuePairs)); post.setHeader(“Content-Type”, “application/x-www-form-urlencoded; charset=UTF-8”); 在页面上: if (isset($_POST[‘data’])) { $data = $_POST[‘data’]; $json = json_decode($data, true); var_dump($json); var_dump($data); 我得到的是: NULL string(3651) “[{\”Knt_KntWatchId\”:\”15\”,\”type\”:\”INSERT\”,\”Knt_Nazwa1\”:\”a\”},… 我怎样才能让它运作起来? PHP 5.2 – 不能使用json_last_error()

服务器关闭使用httpclient和Java 7建立的连接

我正在尝试连接到使用SNI提供证书的远程服务器。 我注意到服务器正在关闭使用Java 7编译和运行代码时的连接,而不是在我通过Java 8编译和运行它时。 下面是我为测试这个假设而编写的代码。 我切换Java版本并运行代码并获得不同的结果。 public static void getRequest() throws IOException, NoSuchAlgorithmException, KeyManagementException { String url = “https://sorry i can not share the exact url because of privacy concerns”; HttpClient client = getClientInstance(); HttpGet request = new HttpGet(url); HttpResponse response = client.execute(request); System.out.println(“Response Code : ” + response.getStatusLine().getStatusCode()); BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); […]

Apache HttpClient CoreConnectionPNames.CONNECTION_TIMEOUT什么都不做?

我从HttpClient获取奇怪的行为,参数CoreConnectionPNames.CONNECTION_TIMEOUT设置为1.我希望HttpGet请求失败,抛出连接超时exception但它们是成功的。 这似乎是不合理的,因为它实际上意味着TCP握手在不到1毫秒内完成。 我正在使用的httpclient版本可以在这个pom.xml中看到 org.apache.httpcomponents httpclient 4.0.1 jar 这是代码: import java.io.IOException; import java.util.Random; 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.client.methods.HttpUriRequest; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.CoreConnectionPNames; import org.apache.http.util.EntityUtils; import org.apache.log4j.Logger; public class TestNodeAliveness { private static Logger log = Logger.getLogger(TestNodeAliveness.class); public static boolean nodeBIT(String elasticIP) throws ClientProtocolException, IOException { try { HttpClient client […]

java.io.IOException:尝试从封闭流中读取

我正在使用Apache HTTP Client进行HTTPPost调用,然后我尝试使用Jackson从响应中创建一个对象。 这是我的代码: private static final Logger log = Logger.getLogger(ReportingAPICall.class); ObjectMapper mapper = new ObjectMapper(); public void makePublisherApiCall(String jsonRequest) { String url = ReaderUtility.readPropertyFile().getProperty(“hosturl”); DefaultHttpClient client = new DefaultHttpClient(); try { HttpPost postRequest = new HttpPost(url); StringEntity entity = new StringEntity(jsonRequest); postRequest.addHeader(“content-type”, “application/json”); log.info(“pub id :”+ExcelReader.publisherId); postRequest.addHeader(“accountId”, ExcelReader.publisherId); postRequest.setEntity(entity); HttpResponse postResponse = client.execute(postRequest); log.info(EntityUtils.toString(postResponse.getEntity())); […]

如何用RequestConfig替换不推荐使用的httpClient.getParams()?

我inheritance了代码 import org.apache.http.client.HttpClient; … HttpClient httpclient = createHttpClientOrProxy(); … private HttpClient createHttpClientOrProxy() { HttpClient httpclient = new DefaultHttpClient(); /* * Set an HTTP proxy if it is specified in system properties. * * http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html * http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientExecuteProxy.java */ if( isSet(System.getProperty(“http.proxyHost”)) ) { int port = 80; if( isSet(System.getProperty(“http.proxyPort”)) ) { port = Integer.parseInt(System.getProperty(“http.proxyPort”)); } HttpHost proxy […]

如何从apache httpclient 4中禁用默认请求标头?

我使用apache常见的httpclient 4.3.3来发出http 1.0请求。 以下是我提出请求的方式 HttpClient client = HttpClientBuilder.create().build(); HttpPost post = new HttpPost(url); post.setProtocolVersion(new ProtocolVersion(“HTTP”, 1, 0)); // trying to remove default headers but it doesn’t work post.removeHeaders(“User-Agent”); post.removeHeaders(“Accept-Encoding”); post.removeHeaders(“Connection”); post.setEntity(new ByteArrayEntity(ba) ); HttpResponse response = client.execute(post); 但是,我可以看到有其他标头自动添加到我的服务器请求中 Connection: Keep-Alive User-Agent: Apache-HttpClient/4.3.3 (java 1.5) Accept-Encoding: gzip,deflate 如何告诉httpclient不要包含任何其他标头? 我试图用post.removeHeaders(xxxx)删除那些标题,但它不起作用。 你能告诉我怎么样吗? 谢谢,

使用DefaultHTTPClient时如何显示所有HTTP标头?

使用Apache Commons HTTP Client中的DefaultHttpClient() ,是否可以在控制台输出中显示完整请求以进行调试? 我的应用程序出现问题,我觉得最简单的调试方法是检查DefaultHTTPClient发送的所有数据。

使用Mockito模拟Apache HTTPClient

我正在尝试模拟Apache HttpClient接口,以便模拟下面提到的一个方法来返回一个存根的JSON对象作为响应。 HttpResponse response = defaultHttpClient.execute(postRequest); 有人可以通过一些示例代码建议如何实现这一目标吗? 非常感谢您的帮助。 谢谢

Java HttpRequest JSON和响应处理

我已经看过其他几个问题,但我仍然不完全理解这一点。 我想将JSON字符串POST到远程地址,然后从JSON响应中检索值。 我正在使用Apache的Java库。 public HttpResponse http(String url, String body) throws IOException { try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) { HttpPost request = new HttpPost(url); StringEntity params = new StringEntity(body); request.addHeader(“content-type”, “application/json”); request.setEntity(params); //httpClient.execute(request); HttpResponse result = httpClient.execute(request); } catch (IOException ex) { } return null; } 作为正文,我会通过以下(例子): {“example”:1,”fr”:”lol”} 我完全不知道如何从响应中检索JSON值。

如何在HttpClient的请求中添加,设置和获取Header?

在我的应用程序中,我需要在请求中设置标题,我需要在控制台中打印标题值…所以请举例说明HttpClient或在我的代码中编辑它… 我的代码是, import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; public class SimpleHttpPut { public static void main(String[] args) { HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(“http://http://localhost:8089/CustomerChatSwing/JoinAction”); try { List nameValuePairs = new ArrayList(1); nameValuePairs.add(new BasicNameValuePair(“userId”, […]