我需要我的程序向服务器发送请求。问题是,服务器只识别ös,äsundüs,但JAVA和/或Android不知道它们。 `如何在没有JAVA / Android的情况下发送像Hermann-Löns这样的字符串的请求“改变”ö....哦,顺便说一句,“oe”也没有被服务器识别,已经尝试过了。 ..
请求帮助!
@BalausC:
我将您的代码更改为:
我不确定这是否是你如何引用正确的字段...
String url = "http://busspur02.aseag.de/bs.exe?SID=473A2&ScreenX=1440&ScreenY=900&CMD=CR&DatumT=30&DatumM=4&DatumJ=2010&AbfAnk=Abf&ZeitH=10&ZeitM=45&Intervall=60&Loeschen=%28N%29eue+Suche";
String charset = "CP1252";
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("HTO", start_from));
params.add(new BasicNameValuePair("HT1", destination));
UrlEncodedFormEntity query = new UrlEncodedFormEntity(params, charset);
HttpPost post = new HttpPost(url);
post.setEntity(query);
InputStream response = new DefaultHttpClient().execute(post).getContent();
// Now do your thing with the facebook response.
我无法编译因为我收到错误说:
方法getContent()未定义 对于HttpResponse类型
如果删除了getContent(),则说:
Type mismatch: cannot convert from HttpResponse to InputStream
还有一件事:我使用htmlparser(http://htmlparser.sourceforge.net/)来解析生成的网站。如何访问生成的html网站来解析它?因为否则我将不得不重写几乎所有代码以获得结果..
答案 0 :(得分:4)
到目前为止,您需要使用java.net.URLEncoder
和相应的字符编码来对请求参数中的特殊字符进行编码。
String param = URLEncoder.encode("Hermann-Löns", "CP1252");
确保在HTTP请求中指定Accept-Charset: CP1252
标头。有关如何使用正确编码触发HTTP请求的更完整的代码示例,请检查我在一小时前发布的this answer。它还涵盖了一个HttpClient示例,该示例也包含在Android中。