我希望使用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>
任何解决方案,请?
答案 0 :(得分:0)
而不是使用DefaultHttpClient
使用HttpClient
如下图所示
HttpClient httpClient = new DefaultHttpClient();
final HttpParams httpParams = httpClient.getParams();
HttpConnectionParams.setConnectionTimeout(httpParams, 50000);
方法setConnectionTimeout(int timeInMilliSeconds)
会将超时设置为50秒。