1

XML のみを提供するサーブレットを作成した友人がいます (XML のみ、SOAP などはありませんContent-Type: text/xml)。

今、アンドロイドを使ってアクセスしようとしています。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 を解析するための推奨される方法はありますか? タイトル、メッセージなどの特定のタグがそこにあった場合のように...

4

1 に答える 1

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 の問題については、次のサイトをお勧めします。個人的には、そのサイトの SAX パーサーを好みます (いくつかのテクニックが紹介されています)。

于 2010-10-04T08:43:17.130 に答える