android与网页通信,得到502错误

时间:2010-03-01 08:34:56

标签: android xml web-services http android-webservice

我有一个朋友写了一个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的方法?就像在那里有一个特定的标签,如标题,消息......

1 个答案:

答案 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(他们介绍了一些技术)。