Я создал веб-сервис, использующий Django-Piston, который позволяет выполнять запросы POST и GET.В рамках тестирования я написал быстрый скрипт на Python.Используя скрипт, я могу успешно выполнять оба типа запросов;однако, когда клиент, написанный на Java, пытается выполнить POST, я получаю сообщение об ошибке: «POST / api / service / HTTP / 1.1« 400 225 »-« «Apache-HttpClient / 4.1 (java 1.5)» *
Насколько я понимаю, сообщение http-запроса, генерируемое любым языком, должно быть одинаковым.Другими словами, если я тестирую свой веб-сервис с использованием клиента Python, и он работает, то он должен работать для всех других языков, имеющих библиотеку http.
Вот код Python для POST:
import urllib, urllib2
data = urllib.urlencode({'url': 'www.uvic.ca', 'name': 'uvic'})
url = 'http://xxx/api/service/'
req = urllib2.Request(url, data)
print urllib2.urlopen(req).read()
, а вот код Java:
HttpPost httpost = new HttpPost("http://xxx/api/service/");
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("name", "some_name"));
nvps.add(new BasicNameValuePair("url", "www.somename.com"));
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
response = httpclient.execute(httpost);
entity = response.getEntity();
System.out.println(entity.getContentType());
System.out.println(EntityUtils.getContentCharSet(entity));
System.out.println(EntityUtils.toString(entity));
Я начинаю думать, что этопроблема конфигурации apache.Я вставил несколько отладочных операторов в начале моего метода для POST, и я их вообще не использую.Это означает, что что-то не так с файлом urls.py (что я сомневаюсь, потому что он работает в python) или что-то странное с apache.
Пожалуйста, помогите.Заранее спасибо.