问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java中调用HTTP接口出现乱码?

发布网友 发布时间:2022-04-19 14:16

我来回答

2个回答

热心网友 时间:2023-09-05 02:03

看下你post的方法,设置下这个

httpURLConnection.setRequestProperty("Charset", "utf-8");

拼接参数时:转一下格式

URLEncoder.encode(String.valueOf(value), "utf-8")


下面是我使用的POST方法,最简单的一种

Map<String, String> params = new HashMap<>(); //参数

HttpURLConnection urlCon = null;
URL urlInstance;
StringBuilder sbResult = new StringBuilder();
try {
urlInstance = new URL(url);
urlCon = (HttpURLConnection) urlInstance.openConnection();
urlCon.setRequestMethod("POST");

urlCon.setDoOutput(true); // 是否可以发送数据到服务器
urlCon.setDoInput(true); // 设置是否读服务端
urlCon.setUseCaches(false); // 设置是否缓存
urlCon.setConnectTimeout(15000);// 设置响应超时
// 固定格式
urlCon.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
urlCon.setRequestProperty("Charset", "utf-8");

// 对参数进行处理
String data = "";
if (params != null) {
String value;
Set<String> set = params.keySet();// 获取到所有map的键
for (String string : set) {// 遍历参数,拼接data
value = params.get(string);
data += string + "=" + URLEncoder.encode(String.valueOf(value), "utf-8") + "&";
}
}

urlCon.setRequestProperty("Content-Length", String.valueOf(data.length())); // 设置长度

// 往服务器写入数据
OutputStream out = urlCon.getOutputStream();
out.write(data.getBytes());
out.flush();

// 接收服务器返回的数据
InputStream in = urlCon.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));

String line;// 每一行的数据
while ((line = br.readLine()) != null) {
sbResult.append(line);
}

热心网友 时间:2023-09-05 02:04

/**
 * POST方式请求
 * 
 * @param uri
 *            服务器的uri要用物理IP或域名,不识别localhost或127.0.0.1形式!
 * @param paramMap
 * @param headers
 * @return
 * @throws ClientProtocolException
 * @throws IOException
 */
public static String post(String uri, Map<String, String> paramMap,
Map<String, String> headers) throws ClientProtocolException,
IOException {
HttpPost httpPost = new HttpPost(uri);
if (headers != null) {
for (String key : headers.keySet()) {
httpPost.setHeader(key, headers.get(key));
}
}
List<NameValuePair> params = new ArrayList<NameValuePair>();
if (paramMap != null) {
for (String key : paramMap.keySet()) {
params.add(new BasicNameValuePair(key, paramMap.get(key)));
}
              httpPost.setEntity(new ByteArrayEntity(paramMap.get("reqData").getBytes("UTF-8")));
//httpPost.setEntity(new UrlEncodedFormEntity(params,
//DEFAULT_ENCODING));
}
HttpResponse httpResponse = new DefaultHttpClient().execute(httpPost);
int statusCode;
if ((statusCode = httpResponse.getStatusLine().getStatusCode()) == 200) {
return EntityUtils.toString(httpResponse.getEntity());
}
throw new IOException("status is " + statusCode);
}

public static String post(String uri, String contentType, String content)
throws Exception {
org.apache.commons.httpclient.HttpClient client = new org.apache.commons.httpclient.HttpClient();

PostMethod post = new PostMethod(uri);

RequestEntity entity = new StringRequestEntity(content, contentType,DEFAULT_ENCODING);
post.setRequestEntity(entity);

int statusCode = client.executeMethod(post);
if (statusCode == 200) {
return post.getResponseBodyAsString();
}
throw new IOException("status is " + statusCode);
}

你可以设置下他的默认传递代码方式:DEFAULT_ENCODING 为UTF-8

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
工会主席权限 魅族坏了怎么办 网上买的魅族手机坏了可以保修吗?自己弄坏的,手机花屏,修要多少钱... 从梁溪路公益路公交站到建筑路夏联福记酒店坐什么公交最方便? 退货保和运费险有什么不同 现代Logo设计趋势是什么 优秀的logo设计有什么特征? 哪些品牌的鱼竿质量好 光威悟法师和达瓦一击哪个好 有人了解大卫地板吗?怎么样呢? 麦芽糖是什么颜色的? 迅雷看看怎么一查日漫就出现个这个? 链嶅姟鍣ㄥ繖... 迅雷看看为什么点找片,就出现这个?链嶅姟鍣ㄥ繖,... 鍝堝搱 瀹為檯鐐 璇锋垜鍚冮キ什么意思 华为手机畅享9关屏微信铃声不响开屏响怎么设置? supercharge充电器是什么意思 super junior 的成员 superjunior的这句话是什么意思?来源于哪里?? super jouner的资料 Super Junior 有没有一个组合叫super journey? Super 翻译成中文是什么意思 我要去美国留学,笔记本要带过去还是到美国买好? 关于买本本的各种问题?赏20 super junior都有谁? super4k电视怎么调出电视频道 Super junie组合十三个人都是谁? super junior的真名是什么?昵称是什么? surper和super哪个是超级的意思? 请问电饭煲上:OFF WARM;TIMER.DOWN/UP;SUPER RAPI... 麦芽糖煮水什么颜色 纯净的麦芽糖是什么颜色的 白糖、麦芽糖在烹调中不同温度下的颜色变化是不同... 怎么辨别好的麦芽糖 麦芽糖是什么做的?什么味道?什么颜色?什么形状? 麦芽糖是什么颜色的 麦芽糖是什么样子的 麦芽糖是做什么用的,麦芽糖什么味道 为什么我做的麦芽糖象什么一样? 麦芽糖放一段时间颜色发黄是什么原因? 麦芽糖是怎么做出来的? 好的麦芽糖怎么选? 麦芽糖的做法是什么?它都具有哪些营养价值呢? 如何做麦芽糖? 麦芽糖是怎么做的啊??? 麦芽糖怎么上色好? 麦芽糖是什么东西 这两种颜色的麦芽糖什么区别 华为畅享9手机声音小怎么办? 怎么删除或废除原有的支付宝账号?