HTTP主体立柱在android系统 [英] HTTP body post in android

查看:135
本文介绍了HTTP主体立柱在android系统的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是新android开发。在我的应用程序必须使用HTTP主体立柱。但我发现了一个错误。

下面是我的code:

 的HttpClient HttpClient的=新DefaultHttpClient();
HttpPost httppost =新HttpPost(http://67.64.238.61:8182/websearch);尝试{
    StringEntity SE =新StringEntity( \"<Search><Login><User>test</User><Password>test</Password></Login><SearchWord>1234567890</SearchWord><NextToken></NextToken></Search>\", HTTP.UTF_8);
    se.setContentType(文/ XML);
    httppost.setEntity(SE);    // Htt的presponse HTT presponse = httpclient.execute(httppost);
    BasicHtt presponse HTT presponse =(BasicHtt presponse)HttpClient的.execute(httppost);
    HttpEntity resEntity = HTT presponse.getEntity();
    字符串str = EntityUtils.toString(resEntity);
    的System.out.println(===+ STR);
    //tvData.setText(EntityUtils.toString(resEntity));}赶上(ClientProtocolException E){
    // TODO自动生成catch块
    e.printStackTrace();
}赶上(IOException异常五){
    // TODO自动生成catch块
    e.printStackTrace();
}

我收到这样那样的错误:

  06-08 16:25:38.665:WARN / System.err的(12122):org.apache.http.client.ClientProtocolException
06-08 16:25:38.665:WARN / System.err的(12122):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:557)
06-08 16:25:38.665:WARN / System.err的(12122):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
06-08 16:25:38.675:WARN / System.err的(12122):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
06-08 16:25:38.675:WARN / System.err的(12122):在com.texas.book.Search.search(Search.java:225)
06-08 16:25:38.675:WARN / System.err的(12122):在com.texas.book.Search $ Progress.doInBackground(Search.java:196)
06-08 16:25:38.675:WARN / System.err的(12122):在com.texas.book.Search $ Progress.doInBackground(Search.java:1)
06-08 16:25:38.675:WARN / System.err的(12122):在android.os.AsyncTask $ 2.call(AsyncTask.java:185)
06-08 16:25:38.675:WARN / System.err的(12122):在java.util.concurrent.FutureTask中$ Sync.innerRun(FutureTask.java:305)
06-08 16:25:38.675:WARN / System.err的(12122):在java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-08 16:25:38.675:WARN / System.err的(12122):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
06-08 16:25:38.685:WARN / System.err的(12122):在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:561)
06-08 16:25:38.685:WARN / System.err的(12122):在java.lang.Thread.run(Thread.java:1096)
06-08 16:25:38.685:WARN / System.err的(12122):org.apache.http.ProtocolException:无法从状态行解析状态code:由造成HTTP / 1.1 NDD @阿£¤
06-08 16:25:38.685:WARN / System.err的(12122):在org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:176)
06-08 16:25:38.685:WARN / System.err的(12122):在org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:179)
06-08 16:25:38.685:WARN / System.err的(12122):在org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
06-08 16:25:38.695:WARN / System.err的(12122):在org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
06-08 16:25:38.695:WARN / System.err的(12122):在org.apache.http.protocol.Htt prequestExecutor.doSendRequest(HTT prequestExecutor.java:219)
06-08 16:25:38.695:WARN / System.err的(12122):在org.apache.http.protocol.Htt prequestExecutor.execute(HTT prequestExecutor.java:119)
06-08 16:25:38.695:WARN / System.err的(12122):在org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:410)
06-08 16:25:38.695:WARN / System.err的(12122):在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
06-08 16:25:38.695:WARN / System.err的(12122):org.apache.http.ParseException:无法从状态行解析状态code:由造成HTTP / 1.1 NDD @阿£¤
06-08 16:25:38.715:WARN / System.err的(12122):在org.apache.http.message.BasicLineParser.parseStatusLine(BasicLineParser.java:424)
06-08 16:25:38.715:WARN / System.err的(12122):在org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:99)
06-08 16:25:38.715:WARN / System.err的(12122):在org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
06-08 16:25:38.715:WARN / System.err的(12122):... 18个


解决方案

服务器返回的,你不能处理的响应。好了,你做的反应去处理它 ClientProtocolException

最有可能你需要设置一些头信息,你的 HttpPost 对象的的setHeader 功能。

这是与您正在试图连接到根本不接受你送的是服务器的一个问题。

I am new to android development. In my application I have to use HTTP body post. But I'm getting an error.

Here is my code:

HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://67.64.238.61:8182/websearch");

try {
    StringEntity se = new StringEntity( "<Search><Login><User>test</User><Password>test</Password></Login><SearchWord>1234567890</SearchWord><NextToken></NextToken></Search>", HTTP.UTF_8);
    se.setContentType("text/xml");
    httppost.setEntity(se);

    //HttpResponse httpresponse = httpclient.execute(httppost);
    BasicHttpResponse httpResponse = (BasicHttpResponse) httpclient .execute(httppost);
    HttpEntity resEntity = httpResponse.getEntity();
    String str = EntityUtils.toString(resEntity);
    System.out.println("==="+str);
    //tvData.setText(EntityUtils.toString(resEntity));

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

I am getting this kind of error:

06-08 16:25:38.665: WARN/System.err(12122): org.apache.http.client.ClientProtocolException
06-08 16:25:38.665: WARN/System.err(12122):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:557)
06-08 16:25:38.665: WARN/System.err(12122):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
06-08 16:25:38.675: WARN/System.err(12122):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
06-08 16:25:38.675: WARN/System.err(12122):     at com.texas.book.Search.search(Search.java:225)
06-08 16:25:38.675: WARN/System.err(12122):     at com.texas.book.Search$Progress.doInBackground(Search.java:196)
06-08 16:25:38.675: WARN/System.err(12122):     at com.texas.book.Search$Progress.doInBackground(Search.java:1)
06-08 16:25:38.675: WARN/System.err(12122):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
06-08 16:25:38.675: WARN/System.err(12122):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-08 16:25:38.675: WARN/System.err(12122):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-08 16:25:38.675: WARN/System.err(12122):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
06-08 16:25:38.685: WARN/System.err(12122):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
06-08 16:25:38.685: WARN/System.err(12122):     at java.lang.Thread.run(Thread.java:1096)
06-08 16:25:38.685: WARN/System.err(12122): Caused by: org.apache.http.ProtocolException: Unable to parse status code from status line: HTTP/1.1 ñðð@ã¤
06-08 16:25:38.685: WARN/System.err(12122):     at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:176)
06-08 16:25:38.685: WARN/System.err(12122):     at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:179)
06-08 16:25:38.685: WARN/System.err(12122):     at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
06-08 16:25:38.695: WARN/System.err(12122):     at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
06-08 16:25:38.695: WARN/System.err(12122):     at org.apache.http.protocol.HttpRequestExecutor.doSendRequest(HttpRequestExecutor.java:219)
06-08 16:25:38.695: WARN/System.err(12122):     at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:119)
06-08 16:25:38.695: WARN/System.err(12122):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:410)
06-08 16:25:38.695: WARN/System.err(12122):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
06-08 16:25:38.695: WARN/System.err(12122): Caused by: org.apache.http.ParseException: Unable to parse status code from status line: HTTP/1.1 ñðð@ã¤
06-08 16:25:38.715: WARN/System.err(12122):     at org.apache.http.message.BasicLineParser.parseStatusLine(BasicLineParser.java:424)
06-08 16:25:38.715: WARN/System.err(12122):     at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:99)
06-08 16:25:38.715: WARN/System.err(12122):     at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
06-08 16:25:38.715: WARN/System.err(12122):     ... 18 more

解决方案

The server returned a response that you can't handle. Well, you do handle it as the response goes to ClientProtocolException

Most likely you need to be setting some header information your HttpPost object with the setHeader function.

This is an issue with the server you are trying to connect to simply not accepting what you sent it.

这篇关于HTTP主体立柱在android系统的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆