【问题标题】:android: how to make sure i posted correctly using httppostandroid:如何确保我使用 httppost 正确发布
【发布时间】:2011-12-10 05:14:45
【问题描述】:

我有一个网址 www.abc.com/check ... 我在这个地址上创建了一个用于接收数据的网络服务。通过一个 android 应用程序,我使用以下代码将一些数据发送到该地址:

public class TestappActivity extends Activity {
    EditText ch;
    Button btn;
    InputStream is;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ch=(EditText)findViewById(R.id.ch);
        btn=(Button)findViewById(R.id.btn);

        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
            sendData();

            }
        });


    }


    private void sendData() {

          Log.i(getClass().getSimpleName(), "send  task - start");

            HttpParams p=new BasicHttpParams();
            p.setParameter("name", ch.getText());


          HttpClient client = new DefaultHttpClient(p);


          try {
                HttpResponse response=client.execute(new HttpPost("http://www.abc.com/check"));
                is=response.getEntity().getContent();

        } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }



          Log.i(getClass().getSimpleName(), "send  task - end");

        }
}

我怎样才能知道我的帖子是否成功?当我发布一些东西时,我会得到什么。 ?

【问题讨论】:

    标签: android web-services http-post


    【解决方案1】:

    [更新]简单的解决方案,你可以检查状态码

    response.getStatusLine().getStatusCode();  
    

    这是一个整数(200 表示正常,500 表示服务器出错),Reference Here

    或使用响应正文进行全面检查

    response.getEntity().getContent();
    

    它是由你的服务在服务器上生成的,所以如果你想确保调用真的成功,你可以返回一些东西给客户端。例如一个 XML 字符串

    "<status>OK</status>" 
    

    在响应正文中就足够了。你会在客户端得到它,然后做任何你想做的事情。

    我推荐更简单的解决方案。谢谢shraddha

    【讨论】:

      【解决方案2】:

      我猜 baoz 是对的,但有一个简单的替代方案。

      response.getStatusLine.getstatuscode(); //200-successful
      

      它将返回成功和错误的数字响应代码。此外,如果响应是否定的,它会返回相关的错误代码,以便您跟踪和捕获这些错误。

      问候。

      【讨论】:

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