maven中导入依赖:
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
<version>2.2.0</version>
<scope>compile</scope>
</dependency>
public class JsonPost {
/**
* 工具类不允许有 public 或 default 构造方法
*/
private JsonPost(){}
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
static OkHttpClient client = new OkHttpClient();
/**
* 发送Post请求
* @param url 请求地址
* @param json json格式字符串
* @return
* @throws Exception
*/
public static String jsonPost(String url, String json) throws Exception {
Request request = null;
if(json != null){
RequestBody body = RequestBody.create(JSON, json);
request = new Request.Builder().url(url).post(body).build();
}else{
request = new Request.Builder().url(url).build();
}
Response response = client.newCall(request).execute();
return response.body().string();
}
}
测试用例:
public class MyTest {
public static void main(String[] args) {
//注释:null可以传入json格式的参数
try {
String json = JsonPost.jsonPost("http://www.weather.com.cn/data/sk/101210101.html", null);
System.out.println("json = " + json);
} catch (Exception e) {
e.printStackTrace();
}
}
}
json = {"weatherinfo":{"city":"杭州","cityid":"101210101","temp":"24.8","WD":"东北风","WS":"小于3级","SD":"81%","AP":"1000.3hPa","njd":"暂无实况","WSE":"<3","time":"17:50","sm":"2.1","isRadar":"1","Radar":"JC_RADAR_AZ9571_JB"}}