[英]Android mediaPlayer Progressive Download "Connection Reset By Peer"
[英]Android to WCF connection reset by peer
我有使用WCF服務的android應用程序,這是我來自AsyncTask
代碼片段:
private HttpEntity<HashMap> request(){
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("Cookie", LocalData.Web.getCookie(this.context));
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter());
HttpEntity<HashMap> requestDataEntity = new HttpEntity<>(request, requestHeaders);
HttpEntity<HashMap> response = restTemplate.exchange(this.url, this.httpMethod, requestDataEntity, HashMap.class);
// HttpHeaders headers = response.getHeaders();
// LocalData.Web.storeCookie(headers, context);
return response;
}
@Override
protected HashMap doInBackground(Void... voids) {
try{
return request().getBody();
}
catch (Exception e){
Log.e("error", e.getMessage());
return null;
}
}
主要是它可以正確連接到該服務,但是有時會發生一些異常,該異常會得到此消息:
I / O錯誤:recvfrom失敗:ECONNRESET(對等連接重置); 嵌套的異常是java.net.SocketException:recvfrom失敗:ECONNRESET(對等連接重置)
什么可能導致此錯誤?
注意:
長期運行良好,但是現在我經常遇到這個問題。 是Android問題還是WCF方面的搜索問題?
在連接之前嘗試設置HttpURLConnection:
conn.setRequestProperty("connection", "close");
您也可以查看此鏈接 。 Android會維護連接池並首先使用舊的連接池,因此通過設置此屬性,您將禁用默認情況下啟用的keep-alive
屬性。
為此,您必須創建RestTemplate
HttpComponentsClientHttpRequestFactor
@Bean
RestTemplate restTemplate(SimpleClientHttpRequestFactory factory) {
return new RestTemplate(factory);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.