有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何向api发出POST请求

我使用以下代码连接到.Net Web API,但据我所知,我使用的是POST方法,因为我使用的是HttpPost对象,但api说:

The requested resource does not support http method 'GET'.

我的代码:

private boolean POST(List<NameValuePair>[] nvPair) {

    HttpClient httpclient = new DefaultHttpClient();
    String UrlString = URLEncodedUtils.format(nvPair[0], "utf-8");
    HttpPost httppost = new HttpPost(apiBaseUri + UrlString);

    try {
        httppost.setEntity(new UrlEncodedFormEntity(nvPair[0]));
        HttpResponse response = httpclient.execute(httppost);
        String respond = response.getStatusLine().getReasonPhrase();
        Log.d("MSG 3 > ", respond);

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
    return true;
}

共 (1) 个答案

  1. # 1 楼答案

    用于发送HTTP Post请求

    String UrlString = URLEncodedUtils.format(nvPair[0], "utf-8");
                URL url = new URL(apiBaseUri + UrlString);
                HttpURLConnection connection = (HttpURLConnection) url
                        .openConnection();
                connection.setRequestProperty("User-Agent", "android");
                connection.setRequestProperty("Accept", "application/json");
    
                connection.setRequestMethod("POST");
                connection.setDoInput(true);
                int responseCode = connection.getResponseCode();
                String response = readResponse(connection);