Просто немного стартовой информации. Я пишу приложение Andorid, которое общается с сервером, написанным на C # .Net с использованием платформы MVC. Каждый запрос является постом, и атрибут ActionFilter гарантирует это. Однако из-за этой проблемы .Net анализирует HttpMethod как «ST».
Ниже приведен код, который я использую во всем мире для отправки веб-запросов из моего приложения:
private String MakeRequest(String action, String params){
try {
HttpPost request = new HttpPost(mProtocol + mSubDomain + mHost + action);
String args;
if (params != null) {
args = params;
} else {
args = "[]";
}
StringEntity requestEntity;
requestEntity = new StringEntity(args);
requestEntity.setContentType("application/json;charset=UTF-8");
requestEntity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json;charset=UTF-8"));
request.setEntity(requestEntity);
HttpResponse response = mHttpClient.execute(request);
HttpEntity responseEntity = response.getEntity();
String jString = EntityUtils.toString(responseEntity);
return jString;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
У меня проблема только с одним конкретным методом, все остальные методы работают нормально.
Следующая ссылка на файл pcap, который содержит трафик, поэтому он хорошо виден. (Я отфильтровал это только к применимым строкам)
http://dl.dropbox.com/u/315661/defect.pcap