关于c# 使用http请求

无法支持的类型 2019-11-04 08:50:50
现在有一个服务,使用的是restApi的形式封装的,其中我要使用的一个接口是Get请求方式,参数呢是传递一张图片的base64编码,可是在用HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url+"?"+ImageData); 会出现url太长,无效的url这个错误;可是 在使用python的时候,直接用requests 这个模块 是能够调用这个接口的,或者说c# get请求方式还有其他的传参形式?请各位大佬指点一下
...全文
1124 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
目前就是改成了post接口,另外REST API的方式也并不是所有的接口都适合,从纯协议来说,uri的长度并没有限制,但是从C#封装的HTTP协议来看并不支持过长的uri
github_36000833 2019-11-04
  • 打赏
  • 举报
回复
可能你的REST接口要变通一下了。

HTTP1.1规范RFC2616没有规定GET一定不能带Content。但是,RFC2616第9.3小节规定了GET的语义只和Uri有关:
引用 RFC2616:
The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI.

因此很大部分的HTTP服务,和HTTP客户端,都不支持带Content的GET。

如果数据可能超出Uri的最大限制,可能你要变通接口,采用POST,而不是GET

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧