想用jersey框架发送post请求,body带json格式参数
url:http//192.168.1.211/api/test
body 数据为 {“action”:"test"}
实现如下:
注意事项:引用jar包一定要正确,不然调试一堆报错。
这里引用包如下:
jettison-1.3.jar 这个提供JSONObject 如果用其它的可能会报各种错误。
jersey-bundle-1.9.jar 这个是jersey的捆绑包,一个解决问题
javax.ws.rs.jar 这个提供MediaType类型
import javax.ws.rs.core.MediaType;
import org.codehaus.jettison.json.JSONException;
import org.codehaus.jettison.json.JSONObject;
import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;
public class RestClient {
ClientConfig cc = new DefaultClientConfig();
Client client = Client.create(cc);
WebResource resource = client.resource("http://192.168.1.211/api/instance/6/3/");
JSONObject obj = new JSONObject();
try {
obj.put("action", "start");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ClientResponse response = resource.accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON).post(ClientResponse.class, obj);
String addresses = response.getEntity(String.class);
System.out.println(addresses);
}