python-2.7 - python 2.7错误:在课堂上使用urlopen时出现'raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) HTTPError'
问题描述
我创建了以下函数,它工作正常:
def executeMethod(inJson):
global FunctionCalls
global Logger
FunctionCalls.append("executeMethod")
print(inJson)
print("")
url = API_URL
headers = {"Content-Type":"application/json"}
data = json.dumps(inJson)
print (data)
print("")
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req).read()
print (json.loads(response))
try:
return json.loads(response)["serviceId"]
except:
return -1
现在我知道它有效,我正在尝试将此代码合并到一个类中:
def executeMethod(self):
self.FunctionCalls.append("executeMethod")
print(self.jsonBody)
print("")
url = self.API_URL
headers = {"Content-Type":"application/json"}
data = json.dumps(self.jsonBody)
print (data)
print("")
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req).read()
print (json.loads(response))
try:
return json.loads(response)["serviceId"]
except:
return -1
但是当我尝试使用这个类函数时,我得到以下错误:
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError
没有 HTTP 错误代码或任何东西。我已经多次比较了代码,甚至从它正在工作的函数中重新创建了类函数。我不知道还能尝试什么。
解决方案
更新,似乎请求正文是问题,而不是代码。当我通过服务器预期的 JSON 时运行良好。
推荐阅读
- javascript - 如何从 weppalyzer 隐藏 javascript、web 框架版本详细信息
- git - 内部服务器错误:com.google.gerrit.server.git.UpdateException
- node.js - 运行 nodeJS 应用程序和 express(pino) 时观察到意外的令牌“%”
- animation - FBX 和 BVH 问题
- javascript - vimeo 不触发播放,播放下一个视频时结束事件
- android - 来自同一组件的不同 ViewModel 实例
- python - 来自基于类的视图的 POST 请求参数 - 分页
- sql - SQL Insert 如果不存在,则选择而不是死锁牺牲品
- java - 动作类对象
- ruby-on-rails - 如何在 Rails 中使用装饰器