相关疑难解决方法(0)

使用System.Net.WebRequest时无法设置某些HTTP标头

当我尝试在WebRequest对象上添加HTTP标头键/值对时,我得到以下异常:

必须使用适当的属性修改此标头

我已经尝试Headers使用Add()方法向集合中添加新值,但我仍然得到相同的异常.

webRequest.Headers.Add(HttpRequestHeader.Referer, "http://stackoverflow.com");
Run Code Online (Sandbox Code Playgroud)

我可以通过将WebRequest对象转换为HttpWebRequest并设置诸如的属性来解决这个问题httpWebReq.Referer ="http://stackoverflow.com",但这仅适用于通过属性公开的少数标头.

我想知道是否有办法通过请求远程资源来修改标头的更精细控制.

c# header webrequest

126
推荐指数
6
解决办法
15万
查看次数

requests.get 和 aiohttp GET 和 Httpx 模块之间的不同结果

我正在尝试访问具有机器人防护功能的网站。

使用以下脚本使用请求我可以访问该网站。

request = requests.get(url,headers={**HEADERS,'Cookie': cookies})
Run Code Online (Sandbox Code Playgroud)

我得到了所需的 HTML。但是当我使用 aiohttp 时

async def get_data(session: aiohttp.ClientSession,url,cookies):
    async with session.get(url,timeout = 5,headers={**HEADERS,'Cookie': cookies}) as response:
        text = await response.text()
        print(text)
Run Code Online (Sandbox Code Playgroud)

我收到机器人预防页面作为响应。

这是我用于所有请求的标头。

HEADERS = {
    'User-Agent': 'PostmanRuntime/7.29.0',
    'Host': 'www.dnb.com',
    'Connection': 'keep-alive',
    'Accept': '/',
    'Accept-Encoding': 'gzip, deflate, br'
} 
Run Code Online (Sandbox Code Playgroud)

我比较了 requests.get 和 aiohttp 的请求标头,它们是相同的。

结果不同有什么原因吗?如果是这样为什么?

编辑:我检查了 httpx 模块,问题也出现在httpx.Client()那里httpx.AsyncClient()

response = httpx.request('GET',url,headers={**HEADERS,'Cookie':cookies})
Run Code Online (Sandbox Code Playgroud)

效果不太好。(不是异步的)

python python-requests python-asyncio aiohttp httpx

5
推荐指数
1
解决办法
2111
查看次数

webrequest标头的顺序重要吗?

我正在发出POST请求,将图片上传到网站。
在页面中,有一个FileUpload和一个input (textBox),在fiddler中,我发现页面正在使用“多部分发布”请求模式发送一些数据,(Content Disposition: multipart-formdata;)
一切似乎都不错,因为在fiddler中,关于我的应用程序发布的内容和页面的内容都是相同的正在发送...只是关于标题顺序...

我的问题是,以正确的顺序放置标题真的很重要吗?如果可以,我该怎么办?(因为我们只是在请求中设置一些属性,所以没有地方可以设置顺序...)

感谢您的任何建议...

http-post httpwebrequest http-error http-request

1
推荐指数
2
解决办法
2509
查看次数