Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
附加头的Python HTTP请求在云服务器上生成403错误,在我的机器上运行良好_Python_Server_Httprequest_Http Status Code 403 - Fatal编程技术网

附加头的Python HTTP请求在云服务器上生成403错误,在我的机器上运行良好

附加头的Python HTTP请求在云服务器上生成403错误,在我的机器上运行良好,python,server,httprequest,http-status-code-403,Python,Server,Httprequest,Http Status Code 403,总结一下我发现的需要帮助的问题 我创建了一个python程序,从 该程序在我的机器(Mac OSX)上运行良好 一旦在数字海洋Ubuntu水滴上运行,它就会抛出HTTP403 禁止的错误 我做了一天的研究,大部分答案都是修改标题 我都试过了,没有成功的希望 我浏览了一些链接/参考资料 以下是指向问题的简化源代码: import urllib.request import json url = 'https://bx.in.th/api/pairing/' headers =

总结一下我发现的需要帮助的问题

  • 我创建了一个python程序,从
  • 该程序在我的机器(Mac OSX)上运行良好
  • 一旦在数字海洋Ubuntu水滴上运行,它就会抛出HTTP403 禁止的错误
  • 我做了一天的研究,大部分答案都是修改标题 我都试过了,没有成功的希望
我浏览了一些链接/参考资料

以下是指向问题的简化源代码:

import urllib.request
import json

url = 'https://bx.in.th/api/pairing/'

headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
    'Accept-Encoding': 'none',
    'Accept-Language': 'en-US,en;q=0.5',
    'Connection': 'keep-alive'
}

request = urllib.request.Request(url, headers=headers)

response = urllib.request.urlopen(request)

print(response.read())
print()
print(response.getheaders())
正确的输出应为:

b'{"1":{"pairing_id":1,"primary_currency":"THB","secondary_currency":"BTC"},"21":{"pairing_id":21,"primary_currency":"THB","secondary_currency":"ETH"},"22":{"pairing_id":22,"primary_currency":"THB","secondary_currency":"DAS"},"23":{"pairing_id":23,"primary_currency":"THB","secondary_currency":"REP"},"20":{"pairing_id":20,"primary_currency":"BTC","secondary_currency":"ETH"},"4":{"pairing_id":4,"primary_currency":"BTC","secondary_currency":"DOG"},"6":{"pairing_id":6,"primary_currency":"BTC","secondary_currency":"FTC"},"24":{"pairing_id":24,"primary_currency":"THB","secondary_currency":"GNO"},"13":{"pairing_id":13,"primary_currency":"BTC","secondary_currency":"HYP"},"2":{"pairing_id":2,"primary_currency":"BTC","secondary_currency":"LTC"},"3":{"pairing_id":3,"primary_currency":"BTC","secondary_currency":"NMC"},"26":{"pairing_id":26,"primary_currency":"THB","secondary_currency":"OMG"},"14":{"pairing_id":14,"primary_currency":"BTC","secondary_currency":"PND"},"5":{"pairing_id":5,"primary_currency":"BTC","secondary_currency":"PPC"},"19":{"pairing_id":19,"primary_currency":"BTC","secondary_currency":"QRK"},"15":{"pairing_id":15,"primary_currency":"BTC","secondary_currency":"XCN"},"7":{"pairing_id":7,"primary_currency":"BTC","secondary_currency":"XPM"},"17":{"pairing_id":17,"primary_currency":"BTC","secondary_currency":"XPY"},"25":{"pairing_id":25,"primary_currency":"THB","secondary_currency":"XRP"},"8":{"pairing_id":8,"primary_currency":"BTC","secondary_currency":"ZEC"}}'

[('Date', 'Sun, 13 Aug 2017 09:27:02 GMT'), ('Content-Type', 'text/javascript'), ('Content-Length', '1485'), ('Connection', 'close'), ('Set-Cookie', '__cfduid=d51c37ea835bae4a0c892e91f34f7bc131502616422; expires=Mon, 13-Aug-18 09:27:02 GMT; path=/; domain=.bx.in.th; HttpOnly'), ('Cache-Control', 'max-age=86400'), ('Expires', 'Mon, 14 Aug 2017 09:27:02 GMT'), ('Strict-Transport-Security', 'max-age=0'), ('X-Content-Type-Options', 'nosniff'), ('Server', 'cloudflare-nginx'), ('CF-RAY', '38daa2e36e0a836b-BKK')]
在水滴上运行源代码时出错:

raceback (most recent call last):
  File "api-call.py", line 17, in <module>
    response = urllib.request.urlopen(request)
  File "/usr/lib/python3.5/urllib/request.py", line 163, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib/python3.5/urllib/request.py", line 472, in open
    response = meth(req, response)
  File "/usr/lib/python3.5/urllib/request.py", line 582, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python3.5/urllib/request.py", line 510, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.5/urllib/request.py", line 444, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.5/urllib/request.py", line 590, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden
raceback(最近一次通话最后一次):
文件“api call.py”,第17行,在
response=urllib.request.urlopen(请求)
urlopen中的文件“/usr/lib/python3.5/urllib/request.py”,第163行
返回opener.open(url、数据、超时)
打开文件“/usr/lib/python3.5/urllib/request.py”,第472行
响应=方法(请求,响应)
http_响应中的文件“/usr/lib/python3.5/urllib/request.py”,第582行
“http”、请求、响应、代码、消息、hdrs)
文件“/usr/lib/python3.5/urllib/request.py”,第510行出错
返回自我。调用链(*args)
文件“/usr/lib/python3.5/urllib/request.py”,第444行,在调用链中
结果=func(*args)
文件“/usr/lib/python3.5/urllib/request.py”,第590行,默认为http\u error\u
raise HTTPError(请求完整的url、代码、消息、hdrs、fp)
urllib.error.HTTPError:HTTP错误403:禁止

谢谢大家!

它可能阻止了数字海洋的ipIs有一个身体附在响应上吗?捕获异常,可以对其使用
.read()
来获取响应正文。可能是服务器提供了更详细的信息,说明了它为什么响应403。@MartijnPieters您会怎么做?运行
curlhttps://bx.in.th/api/pairing/
查看他们是否阻止了您的IP范围。@t.m.adam:您的意思是处理异常?它可能阻止了数字海洋的ipIs有一个身体附在响应上吗?捕获异常,可以对其使用
.read()
来获取响应正文。可能是服务器提供了更详细的信息,说明了它为什么响应403。@MartijnPieters您会怎么做?运行
curlhttps://bx.in.th/api/pairing/
查看他们是否阻止了您的IP范围。@t.m.adam:您的意思是处理异常?