簡體   English   中英

Android HTTP請求問題

[英]Android HTTP Request issue

我正在嘗試從我在Andorid Studio中構建的應用程序發出一個http請求,但是看到了一些奇怪的行為

以下代碼在運行時返回HTTP / 1.1 200,但php腳本不運行。 要檢查php腳本是否正確,我已將其復制並粘貼到瀏覽器中,它運行得非常好

  HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost("http://www.domain.com/script.php");

        try {
            // Add your data

            // Execute HTTP Post Request
            HttpResponse response = httpclient.execute(httppost);
            mLastUpdateTimeTextView.setText(response.getStatusLine().toString());
            Log.d("Http Post Response:", response.toString());
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

請問有什么身體可以告訴我為什么我會得到200肯定的響應,但腳本沒有運行?

只是要添加我已在我的清單文件中設置了Internet權限

這是logcat:

02-27 16:33:13.030 26409-26675 /? I / ExchangeSyncSources:[NA] [HttpClientLifeCycle]創建時間:1107382416 02-27 16:33:14.370 26528-26528 /? I / GHttpClientFactory:使用GMSCore的GoogleHttpClient 02-27 16:33:14.590 9554-26702 /? I / GoogleURLConnFactory:綁定HttpService 02-27 16:33:14.600
9554-26702 /? I / GoogleHttpClient:回歸舊版SSLCertificateSocketFactory 02-27 16:33:14.820 26409-26675 /? I / ExchangeSyncSources:[NA] [HttpClientLifeCycle]已關閉:1107382416 02-27 16:33:14.900 26409-26675 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,3]創建時間:1108133120 02-27 16:33:15.920 26409-26675 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,3]關閉:1108133120 02-27 16:33:16.030 26409-26675 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,3]創建時間:1107653144 02-27 16:33:17.890 26409-26675 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,3]關閉:1107653144 02-27 16:33:18.160 26409-26751 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,1]創建時間:1106603920 02-27 16:33:18.970 26342-26342 / com.example.matt.myapplication D / Http Post Response :: org.apache.http.message.BasicHttpResponse @ 4201f0e8 02-27 16:33:19.050 26409-26751 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,1]關閉:1106603920 02-27 16:33:19.180 26409-26757 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,2]創建時間:1106203584 02-27 16:33:19.930 26409-26757 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,2]已關閉:1106203584 02-27 16:33:20.150 26409-26773 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,4]創建時間:1108392040 02-27 16:33:21.040 26409-26773 /? I / BaseSyncSource:[NA] [HttpClientLifeCycle,4]關閉:1108392040

我前段時間有一些類似的方法,有一些小的差異。 據我所知,'HttpClient'和'DefaultHttpClient'之間存在差異。您可以這樣嘗試:

        DefaultHttpClient locationClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost("http://www.domain.com/script.php");

        HttpResponse response = null;
        try {
            response = locationClient.execute(httpPost);
        }
        catch (ClientProtocolException e) {
            Log.e(TAG, e.toString());
        }
        catch (IOException e) {
            Log.e(TAG, e.toString());
        }

        HttpEntity responseEntity = response.getEntity();
        if (responseEntity != null) {

            // do something
        }
        else {
            Log.e(TAG, "Empty response");
        }

所以我得承認,我找到了解決辦法,這與網址框有關。

網址中有一個大寫字母,它不在我服務器上的文件名中。 這導致HTTP請求運行404錯誤頁面。

該鏈接在瀏覽器中工作,但不是Java中HTTP請求中的URL路徑。

現在,我知道這可以被視為無人駕駛,但我想指出,當通過Android發出HTTP請求時,這可能是一個潛在的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM