Tôi đã ở đây cho phần tốt hơn trong một ngày nhưng đã đến với cùng một Error 400 trong một thời gian khá dài. Về cơ bản, mục tiêu của ứng dụng là phân tích ISBN của sách từ url giới thiệu Amazon và sử dụng nó làm khóa tham chiếu để lấy hình ảnh từ API quảng cáo sản phẩm của Amazon. Trang web được viết bằng Python 3.4 và Django 1.8. Tôi đã dành khá nhiều thời gian nghiên cứu ở đây và định cư để sử dụng python-amazon-simple-product-api vì nó sẽ làm cho việc phân tích kết quả từ Amazon dễ dàng hơn một chút.Lỗi 400 với python-amazon-simple-product-api qua pythonanywhere
Answers như: How to use Python Amazon Simple Product API to get price of a product
Làm cho nó có vẻ khá đơn giản, nhưng tôi đã không hoàn toàn nhận được nó để tra cứu một sản phẩm thành công được nêu ra. Dưới đây là một giao diện điều khiển bản in của những gì phương pháp của tôi thường làm, với ISBN đúng đã điền:
>>> from amazon.api import AmazonAPI
>>> access_key='amazon-access-key'
>>> secret ='amazon-secret-key'
>>> assoc ='amazon-associate-account-name'
>>> amazon = AmazonAPI(access_key, secret, assoc)
>>> product = amazon.lookup(ItemId='1632360705')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/tsuko/.virtualenvs/django17/lib/python3.4/site-packages/amazon/api.py", line 161, in lo
okup
response = self.api.ItemLookup(ResponseGroup=ResponseGroup, **kwargs)
File "/home/tsuko/.virtualenvs/django17/lib/python3.4/site-packages/bottlenose/api.py", line 242, i
n __call__
{'api_url': api_url, 'cache_url': cache_url})
File "/home/tsuko/.virtualenvs/django17/lib/python3.4/site-packages/bottlenose/api.py", line 203, i
n _call_api
return urllib2.urlopen(api_request, timeout=self.Timeout)
File "/usr/lib/python3.4/urllib/request.py", line 153, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.4/urllib/request.py", line 461, in open
response = meth(req, response)
File "/usr/lib/python3.4/urllib/request.py", line 571, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python3.4/urllib/request.py", line 499, in error
return self._call_chain(*args)
File "/usr/lib/python3.4/urllib/request.py", line 433, in _call_chain
result = func(*args)
File "/usr/lib/python3.4/urllib/request.py", line 579, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 400: Bad Request
Bây giờ tôi đoán tôi tò mò nếu đây là một số điều không minh bạch với PythonAnywhere, hoặc nếu tôi đã bỏ lỡ một cấu hình thiết lập trong Django? Theo như tôi có thể nói thông qua AWS và trang Amazon Associates, các phím của tôi là chính xác. Tôi không quá lo lắng về phân tích cú pháp tại thời điểm này, chỉ cần nhận được đối tượng. Tôi thậm chí đã cố gắng bỏ qua API và chỉ sử dụng Bottlenose (API mở rộng) nhưng tôi nhận được cùng một lỗi 400 kết quả.
Tôi thực sự mới đối với API của Django và Amazon, mọi hỗ trợ sẽ được đánh giá cao!
Amazon đang trả lời bạn với lỗi 'Yêu cầu không hợp lệ'. Có nghĩa là, bạn có thể đang gửi thông tin không chính xác. hãy kiểm tra lại các phím của bạn ... – Incognos