为了账号安全,请及时绑定邮箱和手机立即绑定

它在邮递员网络中工作,但在代码中不起作用

它在邮递员网络中工作,但在代码中不起作用

C#
白板的微信 2022-12-24 12:52:07
我尝试使用邮递员连接 REST API,这总是一个很好的请求。没问题。但是,在其余的实现代码中,我总是收到错误“StatusCode: Unauthorized, Content-Type: text/plain; charset=utf-8, Content-Length: 0)”。我尝试了很多方法来做到这一点,但从未完成。//url = url server//authorization = Bearer .....//body = text json var client = new RestClient(url);var request = new RestRequest(Method.POST);request.AddHeader("content-type", "application/json");request.AddHeader("authorization", authorization);request.AddParameter("application/json", body, ParameterType.RequestBody);IRestResponse response = client.Execute(request);var result = response.Content;在邮差、
查看完整描述

1 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

我正在使用 HttpWebRequest,但我认为也可以使用 RestClient。


我使用 Fiddler 识别邮递员请求中的标头,然后在代码中回复此标头。


下面的代码对我有用。


我会做一些改变,但仅此而已。



//url = url server

//authorization = Bearer .....

//body = text json 

//bytesBody = body in byte[]


HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);

webRequest.PreAuthenticate = true;

webRequest.Method = "POST";


webRequest.Headers["Cache-Control"] = "no-cache";

webRequest.Accept = "*/*";

webRequest.Headers["Accept-Encoding"] = "gzip, deflate, br";


webRequest.Headers["Accept-Language"] = "en-US,en;q=0.9,pt-BR;q=0.8,pt;q=0.7";

webRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36";

webRequest.ContentType = "application/json";


webRequest.ContentLength = bytesBody.Length;

webRequest.Headers["authorization"] = authorization;

//webRequest.Headers["Origin"] = "chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop";


webRequest.KeepAlive = true;

webRequest.ServicePoint.Expect100Continue = false;

webRequest.Host = host;



using (Stream dataStream = webRequest.GetRequestStream())

{

    dataStream.Write(bytesBody, 0, bytesBody.Length);

    dataStream.Flush();

    dataStream.Close();

}


WebResponse response = webRequest.GetResponse();


using (var streamReader = new StreamReader(response.GetResponseStream()))

{

    string result = streamReader.ReadToEnd();

}

response.Close();


查看完整回答
反对 回复 2022-12-24
  • 1 回答
  • 0 关注
  • 63 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号