0

这可能是标准的东西,但无法让它工作。我org.apache.commons.httpclient.methods用于从我的 Java 代码发出 Http 请求。在一种情况下,我必须发出 PUT 请求并传递一些参数。我正在按照以下方式进行操作:

PutMethod putMethod = new PutMethod(url);
putMethod.getParams().setParameter("param1", "param1Value");
putMethod.getParams().setParameter("param2", "param2Value");
httpClient.executeMethod(putMethod);

但是在服务器上,当它尝试读取这些参数时 - 它只能获取null.

但是,当我修改我urlurl?param1=param1Value&param2=param2Value工作时。

如何使用 setParameter 方法使其工作?

4

2 回答 2

1

要将查询参数添加到 PutMethod,请遵循此方法。

    NameValuePair[] putParameters = new NameValuePair[2];   
    putParameters[0] = new NameValuePair(Param1, value1);       
    putParameters[1] = new NameValuePair(Param2, value2);   


    HttpClient client = new HttpClient();
    PutMethod putMethod = new PutMethod(url);       

    putMethod.setQueryString(putParameters);

然后打电话,

int response = client.executeMethod(putMethod);

而不是putMethod.setQueryString(putParameters);你也可以使用

putMethod.setRequestBody(EncodingUtil.formUrlEncode(putParameters, "UTF-8")); (已弃用)

GetMethod、PostMethod 在添加 Query Params 时与上面的代码有细微的差别。

更多代码示例: http: //www.massapi.com/class/pu/PutMethod.html

希望这可以帮助。

于 2014-10-21T14:42:11.347 回答
-1

您的服务器端代码必须支持该PUT方法

例如,如果它是一个 Servlet,您可以包含该方法

doPUT(); // your put request will be delivered to this method

如果您使用基于 REST 的框架,例如 jersey

您可以使用

@PUT 
   Response yourPutMethod(){..}
于 2013-01-28T09:14:04.963 回答