使用邮递员的 GET 请求有效,但不适用于 python (HTTPSConnectionPool)

     2023-03-10     131

关键词:

【中文标题】使用邮递员的 GET 请求有效,但不适用于 python (HTTPSConnectionPool)【英文标题】:GET request with postman is working, but it does not work with python (HTTPSConnectionPool) 【发布时间】:2019-08-28 21:29:58 【问题描述】:

我正在尝试从 API 获取 JSON,然后可以在使用 django 构建的网站上显示该 API,并且 API 是使用 rest_framework 制作的。我已经尝试过 Requests 和 http.client 但我得到了同样的错误:

HTTPSConnectionPool(host='webpageUrl' port=443):最大重试次数超出了 url:/api/donations(由 ConnectTimeoutError 引起(

我尝试在 Postman 中使用 GET 请求进行调试,效果很好,但是当我使用 Requests 库文档中提供的示例或使用 Postman 中生成的代码 sn-p 时,我得到了上述错误。此外,我之前有基本身份验证,我认为这是问题的根源,因此我关闭了身份验证但它不起作用。

这是我目前正在尝试的代码:

import requests

def available_donations(request):

    assert isinstance(request,HttpRequest)
    response = requests.get("webpageUrl/api/donations", headers='Content-Type':'application/json', timeout=5)

    return render(
        request,
        'app/availableDonations.html', 'donation':response,
        
            'title':'Overview of available donations'

            )

我预计会收到有关网页呈现的错误,但是从我可以从不同的 *** 问题中读取到的错误意味着它找不到网页。

提前致谢!

编辑1:

我尝试在我的个人计算机上运行来自邮递员的 sn-p 代码,它可以工作。我认为问题在于它无法使用我使用的方法向 API(位于同一台服务器上)发出 HTTP 请求。此外,我尝试使用这种有效的方法运行不同的虚拟 API。

【问题讨论】:

postman 中有 SSL 验证设置。如果你把它关掉,这个请求在邮递员中仍然有效吗? 我尝试在 Postman 中关闭 SSL 证书验证,但它仍然有效。 几个问题:python 代码是否在您运行 Postman 的同一台机器上运行?它是在本地运行还是在容器或虚拟机中运行?这听起来更像是网络问题,而不是 Python / 请求问题。 python代码运行在不同机器上的Linux服务器上,邮递员在我的个人电脑上 【参考方案1】:

我发现我使用的方法对内部 HTTPS 请求无效。我使用 ifconfig 查看本地 IP 地址,并使用它代替主机并将 IP 地址放在 settings.py 中的 ALLOWED_HOSTS 中。此外,我使用 verify=False 禁用了 SSL 验证

def getDonations():

    url = "https://172.19.10.5/api/donations"
    payload = ""
    headers = 
    'cache-control': "no-cache",
    

    response = requests.request("GET", url, data=payload, headers=headers, timeout=5, verify=False)
    print(response.text)
    return response.text

【讨论】:

【参考方案2】:

尝试验证会话

session = requests.Session()
session.verify = True

session.get("webpageUrl/api/donations", headers='Content-Type':'application/json', timeout=5, verify=True)

【讨论】:

邮递员原始数据有效,但表单数据不适用于节点中的 POST 请求

】邮递员原始数据有效,但表单数据不适用于节点中的POST请求【英文标题】:Postmanrawdataworksbutform-datanotworksonPOSTrequestinnode【发布时间】:2018-07-2110:37:00【问题描述】:我在使用邮递员时遇到了一些问题。当我尝试以JSON(application... 查看详情

POST 请求适用于 Postman,但不适用于 Guzzle

...json。为了测试,我使用Postman访问了API,一切运行良好。邮递员标题:Ac 查看详情

使用标头参数的邮递员授权工作但不适用于 Axios 标头

】使用标头参数的邮递员授权工作但不适用于Axios标头【英文标题】:PostmanAuthorizationusingheaderparameterworkingbutnotwithAxiosheader【发布时间】:2021-07-2204:29:20【问题描述】:使用外部Vue应用程序进行LaravelJwtAPI测试。当我从下拉列表中... 查看详情

Ajax POST 不适用于 spring security csrf,但 GET 方法有效

...【发布时间】:2018-10-1700:40:26【问题描述】:我正在尝试使用jqueryajaxpost方法提交数据,但到目前为止我没有这样做。我正在使用springsecurity4.0.4.RELEASE和Springframe 查看详情

Laravel 请求验证不适用于邮递员请求

】Laravel请求验证不适用于邮递员请求【英文标题】:Laravelrequestvalidationnotworkingforpostmanrequest【发布时间】:2021-04-1307:18:22【问题描述】:对于下面的请求,当body参数以JSON格式发送时,它总是验证请求(因为没有触发验证规则)... 查看详情

GET 请求在邮递员中有效,但在 Axios 中失败

】GET请求在邮递员中有效,但在Axios中失败【英文标题】:GETrequestworksinpostmanbutfailswithAxios【发布时间】:2020-03-0705:08:03【问题描述】:我正在向具有相同标头(包括Bearer)的同一端点发送GET请求,但是当我从Postman调用时得到200... 查看详情

为 JWT 使用过滤器时,HttpServletRequest 为空,标头适用于邮递员,但不适用于 localhost

】为JWT使用过滤器时,HttpServletRequest为空,标头适用于邮递员,但不适用于localhost【英文标题】:HttpServletRequestisnullwhenusingfilterforJWT,headersworkonpostmanbutnotlocalhost【发布时间】:2020-08-0814:10:41【问题描述】:我将React用于前端,Java... 查看详情

AFNetworking 2.0 参数字典不适用于 GET 请求

...2.0用于正常的GET请求,但参数字典似乎没有效果。我正在使用标准:[managerGET:URLStringparameters:parameterssucces 查看详情

使用 Postman 工具向 Yammer API 发出 Get 请求,但不适用于 Vue-Resource

】使用Postman工具向YammerAPI发出Get请求,但不适用于Vue-Resource【英文标题】:MakingGetrequesttoYammerAPIworksusingPostmantoolbutnotwithVue-Resource【发布时间】:2021-05-2206:40:58【问题描述】:我正在尝试将YammerAPI集成到我的Vue.JS项目中,对于Http... 查看详情

GET 请求适用于 Postman,但为啥它不适用于 ReactJS fetch?

】GET请求适用于Postman,但为啥它不适用于ReactJSfetch?【英文标题】:GETrequestworkswithPostmanbutwhydoesn\'titworkwithReactJSfetch?GET请求适用于Postman,但为什么它不适用于ReactJSfetch?【发布时间】:2016-12-1605:31:29【问题描述】:当我在Postman... 查看详情

使用 C# HttpClient API 和 postman 测试的区别?客户端调用适用于邮递员,但不适用于 C# httpClient getAsync

...使用C#HttpClientAPI和postman测试的区别?客户端调用适用于邮递员,但不适用于C#httpClientgetAsync【英文标题】:DifferencesbetweenusingC#HttpClientAPIandthepostmantesting?Clientcallworksonpostman,butnotC#httpClientgetAsync【发布时间】:2016-12-1319:37:44【问题... 查看详情

Api 与 Postman 一起工作,但不适用于 android 应用程序

...Java方法,它接受两个参数并存储在数据库中,它可以与邮递员一起正常工作,但是当我在Android应用程序中使用它时它不起作用。我尝试使用Volley和Retrofit发送请求。服务 查看详情

获取请求适用于邮递员,但适用于浏览器

】获取请求适用于邮递员,但适用于浏览器【英文标题】:Getrequestworkswithpostmanbutwithbrowser【发布时间】:2021-05-2412:23:14【问题描述】:从POSTMAN发送的获取请求有效,但从浏览器发送时失败。即使在使用bodyparser中间件之后,后端... 查看详情

HttpClient post call 适用于邮递员,但不适用于 C#

】HttpClientpostcall适用于邮递员,但不适用于C#【英文标题】:HttpClientpostcallworksonpostmanbutnotC#【发布时间】:2020-10-2504:49:23【问题描述】:正如标题所说,我的post-call可以在postman中工作,但不能在c#中工作。无论我尝试什么,它都... 查看详情

我的 post route 不起作用,postman 认为是 GET 请求

...(\'cart\',CartController::class);我试过清除缓存,但没有解决。邮递员的截图: 查看详情

增量值有效,但不适用于附加的 HTML [重复]

...一个索引。但是,它似乎只适用于第一个附加行,显然只使用设置值。它从不使用1之后的增量值。尽管控制台仍然给出了变量的正确值,所以我对它为什么会发生感到困惑。varrowNum=1;$ 查看详情

多个 CORS 适用于 GET 但不适用于 PUT/POST 与飞行前请求 Web api 2

】多个CORS适用于GET但不适用于PUT/POST与飞行前请求Webapi2【英文标题】:MultipleCORSworkingforGETbutnotforPUT/POSTwithpre-flightrequestsWebapi2【发布时间】:2018-03-2410:14:24【问题描述】:当我在我的Web.config中配置CORS时,一切正常:<customHeader... 查看详情

oAuth1.0a 不适用于来自 Python 的 wordpress API 使用请求,尽管来自 Postman 的调用有效

】oAuth1.0a不适用于来自Python的wordpressAPI使用请求,尽管来自Postman的调用有效【英文标题】:oAuth1.0adoesn\'tworkforwordpressAPIfromPythonusingrequests,althoughcallworksfromPostman【发布时间】:2018-06-2721:44:52【问题描述】:我对编程和Python还很陌... 查看详情