Как добавить тип контента для httppost с помощью httpclient?
- Здесь я использую httpclient для получения ответа от веб-службы, используя httppost отправляю запрос, тип содержимого данных сервера - application/x-www-form-urlencoded.
Как добавить это, вот мой код, означает, что я хочу только "application/x-www-form-urlencoded" этот тип данных из службы
String postUrl = url; HttpClient client = new DefaultHttpClient(); HttpPost request = new HttpPost(postUrl); request.setHeader("Content-type", "application/x-www-form-urlencoded"); request.setHeader("Expect", "100-continue"); HttpResponse response = client.execute(request); System.out.println("ddddddddddddddddddddddd "+response); BufferedReader reader = new BufferedReader( new InputStreamReader( response.getEntity().getContent(), "UTF-8")); String line; builder = new StringBuilder(); while ((line = reader.readLine()) != null) { builder.append(line); } Log.d("Response", builder.toString()); resObj = builder.toString(); System.out.println("ddddddddddddddddddddddd "+resObj); } catch (Exception e) { // TODO: handle exception Log.d("ERROR", e.toString()); }
1 ответ
Я попытался использовать httpost со значениями namepair, он не работает, поэтому пришел к выводу, используя другой способ
его работа хорошо,Примечание: нам нужно Java 1.7 JRE
String param1 = "9880938687";
String param2 = "value2";
// ...
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("mobile", param1));
String query = null;
try {
query = String.format("mobile=%s¶m2=%s",
URLEncoder.encode(param1, charset),
URLEncoder.encode(param2, charset));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
URLConnection connection = new URL(targetURL).openConnection();
connection.setDoOutput(true); // Triggers POST.
connection.setRequestProperty("Accept-Charset", charset);
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=" + charset);
try (OutputStream output = connection.getOutputStream()) {
output.write(query.getBytes(charset));
}
//InputStream response = connection.getInputStream();
// ..
//Get Response
InputStream is = connection.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
StringBuffer response = new StringBuffer();
while((line = rd.readLine()) != null) {
response.append(line);
response.append('\r');
}
rd.close();
System.out.println("***"+response.toString());
return response.toString();