微沫小熊 2019-05-30 19:16 采纳率: 50%
浏览 581

WebClient.UploadValues方法调用第三方接口返回400错误

问题:webclient请求的时候,远程服务器返回400错误,
但是数据又传送给对方了,很困惑为啥会catch到400错误。

代码在:
byte[] byRemoteInfo = webClientObj.UploadValues(strUrl,postVars);
这里报的异常,返回
{"远程服务器返回错误: (400) 错误的请求。"}

//注释里的更改请求头的几个方法都试过了,不好使。

private void SendPost(int agent, string secretKey, string strUrl, ViewModels.GetReInfoViewModel viewModel, string cameraName)
        {
            agent = 1;//代理人id
            secretKey = "miyao";
            strUrl="请求串";//第三方接收的url,demo:http://www.baidu.com/webapi/postvalues?access_token=passsecrete
            try
            {
                var webClientObj = new WebClient();
                var postVars = new System.Collections.Specialized.NameValueCollection();
                //返回状态内容
                postVars.Add("BusinessStatus", viewModel.BusinessStatus.ToString());
                postVars.Add("StatusMessage", viewModel.StatusMessage);
                //webClientObj.Encoding = Encoding.UTF8;
                byte[] byRemoteInfo = webC**lientObj.UploadValues(strUrl,postVars);
                //返回值
                string remoteInfo = Encoding.UTF8.GetString(byRemoteInfo);
                logInfo.Info(string.Format("请求第三方{0}接口返回消息:{1}", agent, remoteInfo));
            }
            catch (Exception ex)
            {
                logError.Error("调用" + agent + "接口传摄像头续保信息接口异常,Url为:" + strUrl + ";\n 异常信息:" + ex.StackTrace + " \n " + ex.Message);
            }
        }
  • 写回答

1条回答

  • threenewbee 2019-05-31 00:14
    关注

    400说明你连上了服务器,对方服务器返回你400的状态码,这个状态码通常表示没有权限,也许是你的参数传递的不对,也许是服务器本身明明接收了数据但是还是错误地返回了状态码,这个要和服务器的所有者联系。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器