android SocketTimeoutException

时间:2014-11-05 06:52:22

标签: android socket-timeout-exception

大家好,我正在创建应用程序,因为我需要将数据发送到服务器,但我得到这个logcat

11-05 12:06:35.838: W/System.err(16635): java.net.SocketTimeoutException
11-05 12:06:35.888: W/System.err(16635):    at java.net.PlainSocketImpl.read(PlainSocketImpl.java:492)
11-05 12:06:35.888: W/System.err(16635):    at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
11-05 12:06:35.898: W/System.err(16635):    at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:241)
11-05 12:06:35.898: W/System.err(16635):    at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
11-05 12:06:35.898: W/System.err(16635):    at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:191)
11-05 12:06:35.898: W/System.err(16635):    at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:82)
11-05 12:06:35.898: W/System.err(16635):    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
11-05 12:06:35.908: W/System.err(16635):    at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:180)
11-05 12:06:35.908: W/System.err(16635):    at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
11-05 12:06:35.908: W/System.err(16635):    at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
11-05 12:06:35.908: W/System.err(16635):    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)
11-05 12:06:35.908: W/System.err(16635):    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
11-05 12:06:35.918: W/System.err(16635):    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:428)
11-05 12:06:35.918: W/System.err(16635):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
11-05 12:06:35.918: W/System.err(16635):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:653)
11-05 12:06:35.918: W/System.err(16635):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:627)
11-05 12:06:35.918: W/System.err(16635):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:616)
11-05 12:06:35.928: W/System.err(16635):    at com.addonwebsolution.yarg.internet.HttpRequest.postData(HttpRequest.java:86)
11-05 12:06:35.928: W/System.err(16635):    at com.addonwebsolution.yarg.internet.AHttpRequest$4.run(AHttpRequest.java:204)
11-05 12:06:35.928: W/System.err(16635):    at java.lang.Thread.run(Thread.java:841

这是我的班级

import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;

import android.util.Log;

/**
 * This class sends your data through GET and POST methods
 * 
 * */
public class HttpRequest {

    DefaultHttpClient httpClient;
    HttpContext localContext;
    private String ret;

    HttpResponse response = null;
    HttpPost httpPost = null;
    HttpGet httpGet = null;
    @SuppressWarnings("rawtypes")
    Map.Entry me;
    @SuppressWarnings("rawtypes")
    Iterator i;

    public HttpRequest() {
        HttpParams myParams = new BasicHttpParams();

        HttpConnectionParams.setConnectionTimeout(myParams, 50000);
        HttpConnectionParams.setSoTimeout(myParams, 50000);
        httpClient = new DefaultHttpClient(myParams);
        localContext = new BasicHttpContext();
    }

    public void clearCookies() {
        httpClient.getCookieStore().clear();
    }

    public String sendGet(String url) {
        httpGet = new HttpGet(url);

        try {
            response = httpClient.execute(httpGet);
        } catch (Exception e) {
            e.printStackTrace();
        }

        try {
            ret = EntityUtils.toString(response.getEntity());
        } catch (IOException e) {
            Log.e("HttpRequest", "" + e.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
        }

        return ret;
    }

    public String postData(String url, List<NameValuePair> nameValuePairs)
            throws Exception {
        System.out.println("IN POST DATA>>>>>>>>>>>>>>>>>");
        // Getting the response handler for handling the post response
        ResponseHandler<String> res = new BasicResponseHandler();
        HttpPost postMethod = new HttpPost(url);

        // Setting the data that is to be sent
        postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        // Execute HTTP Post Request
        String response = httpClient.execute(postMethod, res);
        return response;
    }
}

调用此方法,如

11-05 12:06:35.838: W/System.err(16635): java.net.SocketTimeoutException
11-05 12:06:35.888: W/System.err(16635):    at java.net.PlainSocketImpl.read(PlainSocketImpl.java:492)
11-05 12:06:35.888: W/System.err(16635):    at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
11-05 12:06:35.898: W/System.err(16635):    at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:241)
11-05 12:06:35.898: W/System.err(16635):    at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
11-05 12:06:35.898: W/System.err(16635):    at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:191)
11-05 12:06:35.898: W/System.err(16635):    at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:82)
11-05 12:06:35.898: W/System.err(16635):    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:174)
11-05 12:06:35.908: W/System.err(16635):    at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:180)
11-05 12:06:35.908: W/System.err(16635):    at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:235)
11-05 12:06:35.908: W/System.err(16635):    at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:259)
11-05 12:06:35.908: W/System.err(16635):    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:279)
11-05 12:06:35.908: W/System.err(16635):    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:121)
11-05 12:06:35.918: W/System.err(16635):    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:428)
11-05 12:06:35.918: W/System.err(16635):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
11-05 12:06:35.918: W/System.err(16635):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:653)
11-05 12:06:35.918: W/System.err(16635):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:627)
11-05 12:06:35.918: W/System.err(16635):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:616)
11-05 12:06:35.928: W/System.err(16635):    at com.addonwebsolution.yarg.internet.HttpRequest.postData(HttpRequest.java:86)
11-05 12:06:35.928: W/System.err(16635):    at com.addonwebsolution.yarg.internet.AHttpRequest$4.run(AHttpRequest.java:204)
11-05 12:06:35.928: W/System.err(16635):    at java.lang.Thread.run(Thread.java:841)

0 个答案:

没有答案