【问题标题】:Android app sends data to PHP script - Expectation failed v2.0Android 应用程序向 PHP 脚本发送数据 - 预期失败 v2.0
【发布时间】:2010-12-25 17:33:24
【问题描述】:

大家好,圣诞快乐!

我最近在 StackOverflow 上问了一个问题:Android app sends data to PHP script - Expectation failed

我没有得到预期的答案,所以我再次尝试寻找新线索。

首先,我发现有人在这个网站上遇到了同样的错误:http://www.anddev.org/novice-tutorials-f8/doing-http-post-with-the-current-sdk-t5911-15.html

---------------- 引用 ---------------- ---------------------------------

大家好! 我需要一点帮助..我已经测试了这个论坛和其他网站上的每个代码,对它们进行了清理或按原样使用,但我总是返回相同的错误:417 Expectation Failed..我对不同的状态错误一无所知从 404、500 等等.. 有经验的大侠知道吗?? 非常感谢你!如果有人能找到答案,我会用一些开放代码为这个论坛努力工作!!

您的代码无法正常工作的原因很可能是因为您不了解如何构建 HTTP 请求。代码很好,你的标题和内容可能不是!

使用网络协议分析器(如 Wireshark)或 FireBug 或 Chrome 的内置开发工具,读取您向网站发出的 POST 请求,然后在 Android 中重建它们(使用相同的标头)。

---------------------------- UNQuote --------------- ---------------------------------

我尝试过使用wireshark,结果是我不使用的时候

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();  
     nameValuePairs.add(new BasicNameValuePair("Name", "Noon"));  
     nameValuePairs.add(new BasicNameValuePair("Level", "0"));  
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

发送的消息是httpPost

但是当我使用 nameValuePairs 时,没有发送 HttpPost。

我真的被这个错误迷失了。

先谢谢了。

【问题讨论】:

    标签: php android http-post


    【解决方案1】:

    您的问题不是 POST 问题,而是 HttpClient-server 问题...您可以使用简单的设置来解决它。下面是对正在发生的事情的简要说明,但您可以在 android 文档中的 CoreProtocolPNames.USE_EXPECT_CONTINUE 中找到更多信息。

    在通过(即名称-值对)发送实体的内容之前,HttpClient 请求服务器以“100-continue”语句(“Expect: 100-continue”握手)进行响应。如果服务器未能执行此操作,其响应将返回 417,并且不会发送实体。不过,您可以在初始化 HttpClient 时使用以下几行来停止握手:

    mHttpClient = new DefaultHttpClient(); params = HttpClient.getParams(); params.setParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE,false);

    该设置应该会阻止您的代码请求握手,并且应该立即发送实体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      相关资源
      最近更新 更多