这可能是标准的东西但无法让它变得w。
我正在使用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
。
但是,当我将url
修改为url?param1=param1Value¶m2=param2Value
时,它可以正常工作。
如何使用setParameter方法使其工作?
答案 0 :(得分: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在添加查询参数时与上述代码相比略有不同。
更多代码示例:http://www.massapi.com/class/pu/PutMethod.html
希望这会有所帮助。
答案 1 :(得分:-1)
您的服务器端代码必须支持PUT
方法
例如,如果它是一个Servlet,你可以包含方法
doPUT(); // your put request will be delivered to this method
如果您使用基于REST的框架,例如jersey
你可以使用
@PUT
Response yourPutMethod(){..}