2

这一定是非常愚蠢的事情,现在试图解决这个问题几天,但它真的不起作用。我到处搜索,可能有人有同样的问题,但我似乎找不到。

我正在开发一个 Android 应用程序,这个应用程序从网站上提取了一些 xml。由于这个网站宕机了很多,我决定保存它并在本地运行它。现在我做了什么:

  • 我下载了用于托管下载的 xml 文件的 kWs 应用程序。
  • 我将文件放在正确的目录中,并且可以通过移动浏览器访问它,但不能通过我的应用程序访问(与我从其他网站拉取文件时使用的代码相同,不是由我托管,唯一的区别显然是 URL)。

因此,我尝试将其托管在我的 PC 上并从那里使用我的应用程序访问它。同样的结果,移动浏览器找到它没有问题,但应用程序一直说404 Not Found: "The requested URL /test.xml&parama=Someone&paramb= was not found on this server."

注意:不要介意我发送的 2 个参数,我需要它来从不是我托管的网站上获取正确的东西。

我的代码:

public String getStuff(String name){
        String URL = "http://10.0.0.8/test.xml";

        ArrayList<NameValuePair> params = new ArrayList<NameValuePair>(2);
        params.add(new BasicNameValuePair("parama", name));
        params.add(new BasicNameValuePair("paramb", ""));

        APIRequest request = new APIRequest(URL, params);
        try {
                RequestXML rxml = new RequestXML();
                AsyncTask<APIRequest, Void, String> a = rxml.execute(request);
                ...
        } catch(Exception e) {
                e.printStackTrace();
        }
        return null;
}

那应该可以正常工作。现在RequestXML上课部分:

class RequestXML extends AsyncTask<APIRequest, Void, String>{
        @Override
        protected String doInBackground(APIRequest... uri) {
                HttpClient httpclient = new DefaultHttpClient();
                String completeUrl = uri[0].url;

        // ... Add parameters to URL ...

                HttpGet request = null;
                try {
                        request = new HttpGet(new URI(completeUrl));
                } catch (URISyntaxException e1) {
                        e1.printStackTrace();
                }

                HttpResponse response;
                String responseString = "";
                try {
                        response = httpclient.execute(request);
                        StatusLine statusLine = response.getStatusLine();
                        if(statusLine.getStatusCode() == HttpStatus.SC_OK){
                        // .. It crashes here, because statusLine.getStatusCode()
                        // returns a 404 instead of a 200.
  • xml 只是普通的 xml,没什么特别的。我将.htaccess文件的内容更改为“ ALLOW FROM ALL ”(有效,因为我的移动设备上的浏览器可以访问它并显示正确的 xml)。

  • 我正在运行 Android 4.0.4,并且在我的移动设备上使用默认浏览器和 chrome。

  • 我正在使用 MoWeS 在我的 PC 上托管网站。

任何帮助将不胜感激,如果您在找到此问题的答案之前需要了解任何信息,我将非常乐意为您提供该信息。

谢谢你的时间!

干杯。

4

1 回答 1

4

我想你只是错过了文件名后面的问号

/test.xml?¶ma=某人¶mb=

于 2012-12-18T23:01:04.313 回答