gpt4 book ai didi

java - 只发送一个带有 http Post 的字符串但错误

转载 作者:行者123 更新时间:2023-12-02 06:04:14 26 4
gpt4 key购买 nike

抱歉,我英语说得不太好。

我尝试发送字符串“Nhập nội dung bình luận để gửi đi!”。

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(link);
String str ="Nhập nội dung bình luận để gửi đi!";
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("file", str));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);

但是我的网络服务器上收到“Nhập nội dung bình l”。我该如何解决它。

编辑:

我通过以下代码编码为 UTF-8:

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

替换为:

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs,"UTF-8"));

但是还是不行。

最佳答案

尝试这个改变:

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));

服务器还必须能够处理 UTF-8 才能正常工作。

或者,如果文本将呈现为 HTML,您可以对整个内容进行编码,这样服务器就不需要支持 UTF-8。

String str ="Nh&#7853;p n&#7897;i dung bình lu&#7853;n &#273;&#7875; g&#7917;i &#273;i!";

这是html编码,不是URL编码。不幸的是,据我所知,Java 不包含 html 编码器。您必须使用第三方库。

该线程列出了一些库: Is there a JDK class to do HTML encoding (but not URL encoding)?

使用其他线程中的示例进行完整破解。尝试这样的事情...

public void post() {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(link);
String str ="Nhập nội dung bình luận để gửi đi!";
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("file", encodeHTML(str)));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
}
public static String encodeHTML(String s)
{
StringBuffer out = new StringBuffer();
for(int i=0; i<s.length(); i++)
{
char c = s.charAt(i);
if(c > 127 || c=='"' || c=='<' || c=='>')
{
out.append("&#"+(int)c+";");
}
else
{
out.append(c);
}
}
return out.toString();
}

关于java - 只发送一个带有 http Post 的字符串但错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22422118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com