错误输入传输已终止,因为您的请求超时

时间:2012-12-21 04:26:58

标签: android ebay

我希望使用ebay api获取带有此类代码的getSessionID

  static final String url = "https://api.sandbox.ebay.com/ws/api.dll";

xml解析器的代码;

 DefaultHttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost(url);
                StringEntity se = new StringEntity("<RuName>\"my runame" /RuName>",HTTP.UTF_8);
                se.setContentType("text/xml");
                httpPost.setHeader("X-EBAY-API-COMPATIBILITY-LEVEL","673");
                httpPost.setHeader("X-EBAY-API-APP-NAME", Constants.EBAY_APP_ID);
                httpPost.setHeader("X-EBAY-API-DEV-NAME",Constants.EBAY_DEV_ID);
                httpPost.setHeader("X-EBAY-API-CERT-NAME", Constants.EBAY_CERT_ID);
                httpPost.setHeader("X-EBAY-API-SITEID","0");
                httpPost.setHeader("X-EBAY-API-CALL-NAME","GetSessionID");
                httpPost.setHeader("Content-Type","text/xml");

                HttpResponse httpResponse = httpClient.execute(httpPost);
                HttpEntity httpEntity = httpResponse.getEntity();
                xml = EntityUtils.toString(httpEntity);
                Log.e("xml", xml);

但它显示出像这样的响应错误

12-21 11:26:12.878: ERROR/xml(643): <GetSessionIDResponse xmlns="urn:ebay:apis:eBLBaseComponents"><Timestamp>2012-12-21T04:26:13.673Z</Timestamp><Ack>Failure</Ack><Errors><ShortMessage>Input transfer has been terminated because your request timed out.</ShortMessage><LongMessage>Input transfer has been terminated because your request timed out.</LongMessage><ErrorCode>21359</ErrorCode><SeverityCode>Error</SeverityCode><ErrorParameters ParamID="0"><Value>Please try again.</Value></ErrorParameters><ErrorClassification>SystemError</ErrorClassification></Errors><Version>803</Version><Build>E803_CORE_BUNDLED_15615944_R1</Build></GetSessionIDResponse>

任何解决方案,请?

1 个答案:

答案 0 :(得分:0)

而不是使用DefaultHttpClient使用HttpClient 如下图所示

HttpClient httpClient = new DefaultHttpClient();
final HttpParams httpParams = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 50000);

方法setConnectionTimeout(int timeInMilliSeconds)会将超时设置为50秒。