在 Apache HttpClient 中使用 euc-jp 发送 UrlEncodedForm 数据
Send UrlEncodedForm data using euc-jp in Apache HttpClient
我想知道如何使用 euc-jp 编码发送表单数据。我在下面进行编码的尝试仍然将日文文本发送为?和奇怪的字符。谢谢!
这就是我目前的做法(无法正常工作):
HttpPost request = new HttpPost("http://httpbin.org/post");
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("Testing", "雄大"));
request.setEntity(new UrlEncodedFormEntity(params, forName("EUC-JP")));
我觉得你的代码不错。 httpbin.org
似乎没有处理 EUC-JP 作为回应。相反,您可以使用 putsreq.com
查看您的请求参数。
import java.util.*;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.client.methods.*;
import org.apache.http.NameValuePair;
import java.nio.charset.*;
import org.apache.http.impl.client.*;
import org.apache.http.client.*;
import org.apache.http.*;
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
HttpClient httpclient = new DefaultHttpClient();
// Create new PutsReq URL by yourself
HttpPost request = new HttpPost("https://putsreq.com/xxxxxxxxxxxxxxxxxxxx");
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("Testing", "雄大"));
request.setEntity(new UrlEncodedFormEntity(params, Charset.forName("euc-jp")));
HttpResponse response = httpclient.execute(request);
BufferedReader reader = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
while ((reader.readLine()) != null) {
System.out.println (reader.readLine());
}
reader.close();
}
}
你会看到
Testing=%CD%BA%C2%E7
在检查页面中。 0xCDBA
表示 EUC-JP 中的 雄
。
我想知道如何使用 euc-jp 编码发送表单数据。我在下面进行编码的尝试仍然将日文文本发送为?和奇怪的字符。谢谢!
这就是我目前的做法(无法正常工作):
HttpPost request = new HttpPost("http://httpbin.org/post");
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("Testing", "雄大"));
request.setEntity(new UrlEncodedFormEntity(params, forName("EUC-JP")));
我觉得你的代码不错。 httpbin.org
似乎没有处理 EUC-JP 作为回应。相反,您可以使用 putsreq.com
查看您的请求参数。
import java.util.*;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.client.methods.*;
import org.apache.http.NameValuePair;
import java.nio.charset.*;
import org.apache.http.impl.client.*;
import org.apache.http.client.*;
import org.apache.http.*;
import java.io.*;
class Main {
public static void main(String[] args) throws Exception {
HttpClient httpclient = new DefaultHttpClient();
// Create new PutsReq URL by yourself
HttpPost request = new HttpPost("https://putsreq.com/xxxxxxxxxxxxxxxxxxxx");
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("Testing", "雄大"));
request.setEntity(new UrlEncodedFormEntity(params, Charset.forName("euc-jp")));
HttpResponse response = httpclient.execute(request);
BufferedReader reader = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
while ((reader.readLine()) != null) {
System.out.println (reader.readLine());
}
reader.close();
}
}
你会看到
Testing=%CD%BA%C2%E7
在检查页面中。 0xCDBA
表示 EUC-JP 中的 雄
。