Python 为什么在我告诉它发布后,请求使用GET?

Python 为什么在我告诉它发布后,请求使用GET?,python,python-requests,Python,Python Requests,我甚至不确定是否发生了这种情况,这可能是URLScan.io端的某个问题,但使用以下代码: api = '####################' url = 'https://www.urlscan.io/api/v1/scan/' headers = { 'Content-Type': 'application/json', 'API-key': api } data = '{"url": "https://www.google.com", "public": "on"

我甚至不确定是否发生了这种情况,这可能是URLScan.io端的某个问题,但使用以下代码:

api = '####################'
url = 'https://www.urlscan.io/api/v1/scan/'

headers = {
    'Content-Type': 'application/json',
    'API-key': api
}

data = '{"url": "https://www.google.com", "public": "on"}'

resp = requests.post(url, data=data, headers=headers)
我不断得到以下错误:

{
  "message": "Wrong method, use POST",
  "description": "In order to scan a page, you have to POST here.",
  "status": 405
}

我不知道我做错了什么。在我的调试器中,它表示即使我调用requests.post resp也是requests.get返回对象。这怎么可能呢?我做错了什么?

除了数据应该是dict,而不是预先格式化的json字符串之外,您没有做错任何事情

r = requests.post('https://httpbin.org/post', data = {'key':'value'})

除了数据应该是dict,而不是预先格式化的json字符串之外,您没有做错任何事情

r = requests.post('https://httpbin.org/post', data = {'key':'value'})

在命令行上运行此命令:

curl -X POST "https://urlscan.io/api/v1/scan/" \
    -H "Content-Type: application/json" \
    -H "API-Key: $apikey" \
    -d "{\"url\": \"$url\", \"public\": \"on\"}"

如果你收到同样的信息,那么很可能与他们有关

在命令行上运行此命令:

curl -X POST "https://urlscan.io/api/v1/scan/" \
    -H "Content-Type: application/json" \
    -H "API-Key: $apikey" \
    -d "{\"url\": \"$url\", \"public\": \"on\"}"

如果你收到同样的信息,那么很可能与他们有关

以下是python中适用于urlscan.io的代码:

import requests
import json

headers = {'API-Key':'your-api-key','Content-Type': 'application/json'}
params = {'url': 'scan-url' }
response = requests.post('https://urlscan.io/api/v1/scan/',headers=headers, data=json.dumps(params))
对API调用的响应将为您提供扫描ID和扫描的API端点,您可以在等待片刻后使用它检索结果。在扫描完成之前,URL将以HTTP 404状态代码响应


希望能有帮助

以下是python中适用于urlscan.io的代码:

import requests
import json

headers = {'API-Key':'your-api-key','Content-Type': 'application/json'}
params = {'url': 'scan-url' }
response = requests.post('https://urlscan.io/api/v1/scan/',headers=headers, data=json.dumps(params))
对API调用的响应将为您提供扫描ID和扫描的API端点,您可以在等待片刻后使用它检索结果。在扫描完成之前,URL将以HTTP 404状态代码响应


希望能有帮助

这并不是说这不是POST,也不是因为错误给出了某个错误,这个错误是完全正确的。例如,每次请求无效时,它都会返回这样的错误。检查是否得到重定向。如果是这样的话,请包含这些信息。当我尝试点击url时,我会被重定向到一个类似的url,前面没有www。尝试从url中删除www.并重试。不,不重定向。在关于requests对象的信息中,它说is_redirect:false,这是因为您将它设置为自动跟踪重定向。最后的响应不是重定向。这不是daid,也不是POST,也不是因为错误给出了某个错误,这个错误是完全正确的。例如,每次请求无效时,它都会返回这样的错误。检查是否得到重定向。如果是这样的话,请包含这些信息。当我尝试点击url时,我会被重定向到一个类似的url,前面没有www。尝试从url中删除www.并重试。不,不重定向。在关于requests对象的信息中,它说is_redirect:false,这是因为您将它设置为自动跟踪重定向。最后的响应不是重定向。这是有效的,但只是因为您忽略了www。在请求中,如果没有它,它也可以完美地工作。真不敢相信我错过了!我想这算是一个答案,如果你要测试很多HTTP端点,我真的很喜欢。这是可行的,但只是因为你忽略了www。如果请求中没有它,它也可以完美地工作。真不敢相信我错过了!我想这算是一个答案如果你要测试很多HTTP端点,我真的很喜欢。