相关疑难解决方法(0)

Python URLLib/URLLib2 POST

我正在尝试使用wx/Python创建一个超级简单的虚拟输入/输出板.对于我将要存储数据的服务器的一个请求,我有以下代码:

data = urllib.urlencode({'q': 'Status'})
u = urllib2.urlopen('http://myserver/inout-tracker', data)
for line in u.readlines():
  print line
Run Code Online (Sandbox Code Playgroud)

没有什么特别的东西在那里.我遇到的问题是,根据我阅读文档的方式,这应该执行一个Post Request,因为我提供了数据参数而且没有发生.我在该URL的索引中有此代码:

if (!isset($_POST['q'])) { die ('No action specified'); }
echo $_POST['q'];
Run Code Online (Sandbox Code Playgroud)

每次我运行我的Python应用程序时,都会在控制台上打印"未指定操作"文本.我将尝试使用请求对象来实现它,因为我已经看到了一些包含这些的演示,但我想知道是否有人可以帮助我解释为什么我没有获得带有此代码的Post Request.谢谢!

- 已编辑 -

此代码可以正常工作并正确发布到我的网页:

data = urllib.urlencode({'q': 'Status'})
h = httplib.HTTPConnection('myserver:8080')
headers = {"Content-type": "application/x-www-form-urlencoded", 
           "Accept": "text/plain"}
h.request('POST', '/inout-tracker/index.php', data, headers)
r = h.getresponse()
print r.read()
Run Code Online (Sandbox Code Playgroud)

我仍然不确定为什么urllib2库在我提供数据参数时不发布 - 对我来说文档表明它应该.

python post urllib urllib2

37
推荐指数
1
解决办法
11万
查看次数

在Python中使用RestAPI的VCloud Director Org用户身份验证

我有VMware设置进行测试.我创建了一个用户abc/abc123来访问组织URL"http:// localhost/cloud/org/MyOrg".我想访问VCloud的RestAPI.我在firefox中尝试使用RestClient插件.它的工作正常.

现在我尝试使用python代码.

url = 'https://localhost/api/sessions/'
req = urllib2.Request(url)
base64string = base64.encodestring('%s:%s' % ('abc@MyOrg', 'abc123'))[:-1]
authheader =  "Basic %s" % base64string
req.add_header("Authorization", authheader)
req.add_header("Accept", 'application/*+xml;version=1.5')

f = urllib2.urlopen(req)
data = f.read()
print(data)
Run Code Online (Sandbox Code Playgroud)

这是我从stackoverflow获得的代码.但是对于我的例子,它给出了"urllib2.HTTPError:HTTP Error 403:Forbidden"错误.

我也尝试过同样的HTTP身份验证.

python authentication vmware vcloud-director-rest-api

4
推荐指数
1
解决办法
2979
查看次数