java实现Get、Post请求接口获取json数据
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
1. HttpClient实现get、post请求
import com.alibaba.fastjson.JSON;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Component
public class HttpClientUtils {
/**
* 有参数请求的get请求
* @param url 请求接口
* @param paramMap 请求参数Map对象
* @return
*/
public static JSONObject getParamMap(String url, Map<String, String> paramMap) {
CloseableHttpClient httpClient = HttpClients.createDefault();
try {
List<NameValuePair> pairs = new ArrayList<>();
for(Map.Entry<String,String> entry:paramMap.entrySet()){
pairs.add(new BasicNameValuePair(entry.getKey(),entry.getValue()));
}
CloseableHttpResponse response;
URIBuilder builder = new URIBuilder(url).setParameters(pairs);
// 执行get请求.
HttpGet httpGet = new HttpGet(builder.build());
response = httpClient.execute(httpGet);
if(response != null && response.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = response.getEntity();
String jsonString= EntityUtils.toString(entity);
JSONObject jsonObject=new JSONObject(jsonString);
// System.out.println("get请求数据成功!\n"+jsonObject);
return jsonObject;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭连接,释放资源
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
/**
* 发送post请求,参数用map接收
* @param url 地址
* @param object 请求的对象
* @return 返回值
*/
public static JSONObject postMap(String url,Object object) {
//获取json字符串
String json= JSON.toJSONString(object);
System.out.println(json);
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
CloseableHttpResponse response;
try {
StringEntity stringEntity=new StringEntity(json, ContentType.APPLICATION_JSON);
httpPost.setEntity(stringEntity);
response = httpClient.execute(httpPost);
if (response != null && response.getStatusLine().getStatusCode() == 200) {
HttpEntity entity = response.getEntity();
String jsonString= EntityUtils.toString(entity);
JSONObject jsonObject=new JSONObject(jsonString);
return jsonObject;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭连接,释放资源
try {
httpClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
}
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 天前 )
960b763e
2 个月前
8c391e04
5 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)