0

在我的views.py的某个地方,我有

def loadFcs(request):
  r = requests.get('a url')
  res = json.loads(r.text)
  #Do other stuff
  return HttpResponse('some response')

现在,当我从我的 javascript 调用它时,会调用 loadFcs,并且可能会异步调用 requests.get。所以我最终看到'TypeError at /loadFcs expected string or buffer'并且跟踪指向行

res = json.loads(r.text)

我还修改了我的代码以检查问题所在,并且

def loadFcs(request):
  r = requests.get('a url')
  res = json.loads(r.text)
  if r == None:
    print 'r is none'
  if r.text == None:
    print 'text is  None'
  #Do other stuff
  return HttpResponse('some response')

并注意到“没有文字”。所以我认为我需要调整代码以便 request.get 是同步的。我认为方法执行会继续,甚至在 r.text 有一些价值之前就已经命中了 return 语句。建议?

4

1 回答 1

0

好的,所以我用 python 命令行尝试了同样的事情,但它在我的服务器中没有使用相同的代码。那么问题出在哪里?

显然,response.text 采用了我的服务器未设置为接收的某种编码(UTF8),因此它只是将其丢弃,因此为空。

解决方案:使用 response.content (这是原始二进制文件)

于 2013-03-20T17:51:03.670 回答