我有一个朋友写了一个servlet,它只提供XML(只是XML,没有SOAP等等,Content-Type: text/xml
)。
现在我正在尝试使用android访问它。如果我使用Firefox浏览页面,我可以访问该页面,但如果我使用我的Android应用程序访问它,我会得到一个HTTP 502 error
。
我正在使用的代码是:
AlertDialog alertDialog;
HttpClient httpClient = new DefaultHttpClient();
HttpContext localContext = new BasicHttpContext();
HttpGet httpGet = new HttpGet("x");
try {
HttpResponse response = httpClient.execute(httpGet, localContext);
alertDialog = new AlertDialog.Builder(view.getContext()).create();
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return;
}
});
alertDialog.setTitle("Response");
alertDialog.setMessage(response.getStatusLine().toString());
alertDialog.show();
alertDialog.setMessage(EntityUtils.toString(response.getEntity()));
alertDialog.show();
} catch (IOException e) {
alertDialog = new AlertDialog.Builder(view.getContext()).create();
alertDialog.setTitle("Sorry");
alertDialog.setMessage("There was a problem connecting to the login-service.");
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return;
}
});
alertDialog.show();
}
有没有推荐的解析XML的方法?就像在那里有一个特定的标签,如标题,消息......
答案 0 :(得分:0)
对于连接问题,我建议如下:似乎代理或您尝试连接的方法存在问题。通常它将是一个代理,它无法将请求转发到特定服务器。但在这种情况下,您可以通过FireFox查看该网站,这不应该是那个问题。您可以尝试使用FireBug Addon来分析该服务器上的请求。 无论如何,尝试这种方法而不是HttpGet:
HttpReq request = Http.getInstance().createRequest();
request.setUrl("URL");
request.setMethod("GET");
request.execute();
message = request.getResult();
您可以尝试的另一件事是,使用HttpGet并使用setFollowRedirects(true / false)方法。也许你必须将其关闭或明确。
对于XML问题,我建议这个网站:http://www.ibm.com/developerworks/xml/library/x-android/帮助我解析一些RSS源。我个人更喜欢该网站上的SAX Parser(他们介绍了一些技术)。