首页 > 解决方案 > 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 错误代码或任何东西。我已经多次比较了代码,甚至从它正在工作的函数中重新创建了类函数。我不知道还能尝试什么。

标签: python-2.7

解决方案


更新,似乎请求正文是问题,而不是代码。当我通过服务器预期的 JSON 时运行良好。


推荐阅读