Как добавить тип контента для httppost с помощью httpclient?

  1. Здесь я использую httpclient для получения ответа от веб-службы, используя httppost отправляю запрос, тип содержимого данных сервера - application/x-www-form-urlencoded.
  2. Как добавить это, вот мой код, означает, что я хочу только "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&param2=%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();
Другие вопросы по тегам