如何通过Java发出的HTTP post请求发送特殊字符

时间:2015-11-03 10:13:38

标签: java post utf-8 httprequest

我需要通过HTTP POST方法将数据发送到Java应用程序中的另一个系统。使用Apache HttpClient库不是一种选择。

我创建了一个URL,httpconection没有问题。但是当发送像西班牙语这样的特殊字符时,系统会抱怨它正在接收 Ã'而不是Ñ。

我读了很多帖子,但我不明白一些事情:

  • 在进行POST连接并写入连接对象时,是否必须对发送的数据执行URLEncode.encode(data,encoding)

  • 发送数据时,在某些例子中我看到他们使用了 conn.writeBytes(strData),其他我见过conn.write(strData.getBytes(encoding))。哪一个更好?是否与使用编码相关?

更新

当前代码:

URL url = new URL(URLstr);

conn1 = (HttpsURLConnection) url.openConnection();
conn1.setRequestMethod("POST");
conn1.setDoOutput(true);

DataOutputStream wr = new DataOutputStream(conn1.getOutputStream());
wr.writeBytes(strToSend);//data sent
wr.flush();
wr.close();

(后来我收到回复)

strToSend之前已URLENCODE.encode(,"UTF-8") 我仍然不知道是否必须在我的代码中使用urlencode和/或setRequestProperty("Contentype","application/x-www-formurlencode"); 或者如果我必须使用.write(strToSend.getByte(??) 欢迎任何想法。我也在测试真正的服务器(我不太了解它)

0 个答案:

没有答案