gpt4 book ai didi

java - Django-Piston 和 Python 客户端与 Java 客户端

转载 作者:行者123 更新时间:2023-12-02 08:22:08 24 4
gpt4 key购买 nike

我使用 Django-Piston 构建了一个 Web 服务,允许 POST 和 GET 请求。作为测试的一部分,我编写了一个快速的 Python 脚本。使用该脚本我可以成功执行两种类型的请求;但是,当用 Java 编写的客户端尝试执行 POST 时,我收到错误: "POST/api/service/HTTP/1.1"400 225 "-""Apache-HttpClient/4.1 (java 1.5)"

我的理解是任何语言生成的http请求消息都必须相同。换句话说,如果我使用 python 客户端测试我的 Web 服务并且它可以工作,那么它应该适用于具有 http 库的所有其他语言。

这是 POST 的 python 代码:

 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 有问题。

请帮忙。提前致谢。

最佳答案

一点搜索会对你有很大帮助。这是第一个 Google 结果。

http://weblog.mattdorn.com/content/restful-web-apps-with-django-piston-and-ext-js/

The reason for the 400 errors is that ExtJS is appending a charset onto the Content-Type field, which causes piston to not interpret the Content-Type correcly. There is an open issue for it at http://bitbucket.org/jespern/django-piston/issue/121/content-type-is-not-being-split-against. I was able to get the example working after I applied the patch and did an easy_install.

这是 Google 的第二次回应。

https://bitbucket.org/jespern/django-piston/issue/99/bad-request-and-content-type-with-fix

关于java - Django-Piston 和 Python 客户端与 Java 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5279425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com