我需要通过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(??)
欢迎任何想法。我也在测试真正的服务器(我不太了解它)