当前位置: 首页 > news >正文

调用赋码远程服务异常_用REST方式访问wcf服务,post时老报“远程服务器返回异常: (400) 异常的请求”...

用REST方式访问wcf服务,post时老报“远程服务器返回错误: (400) 错误的请求”

先贴代码

string id = "12qwsfsfasfsaf";

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://xxx/GetProduct.svc/GetStudentById");

System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

request.Method = "POST";

request.ContentType = "application/json";

request.Accept = "application/json";

request.ContentLength = Encoding.UTF8.GetByteCount(id);

Stream myRequestStream = request.GetRequestStream();

StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));

myStreamWriter.Write(id);

myStreamWriter.Close();

//HttpWebResponse response = (HttpWebResponse)request.GetResponse();

HttpWebResponse response;

try

{

response = (HttpWebResponse)request.GetResponse();

}

catch (WebException ex)

{

response = (HttpWebResponse)ex.Response;

}

StreamReader sr = new StreamReader(response.GetResponseStream());

string jsonstr = sr.ReadToEnd();

奇葩的是只要参数是以数字开头的就不会报错,反之就报错,有谁遇到过这个问题没?

------解决思路----------------------

request.ContentLength = Encoding.UTF8.GetByteCount(id);

Stream myRequestStream = request.GetRequestStream();

StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));

你计算长度的时候用UTF8,而实际写入时用gb2312,可能会造成问题。

改成这样试一试

byte[] bytes = Encoding.UTF8.GetBytes(id);

//如果想用gb2312就使用

// byte[] bytes = Encoding.GetEncoding("gb2312").GetBytes(id);

request.ContentLength = bytes.Length;

Stream myRequestStream = request.GetRequestStream();

myStreamWriter.Write(bytes, 0, bytes.Length);

myStreamWriter.Close();

相关文章:

  • mysql交互操作过程中使用的语言是_使用mySQL与数据库进行交互(一)
  • mysql 从如何重新同步_如何重置(重新同步)MySQL主从复制
  • mysql 子查询索引失效_mysql 索引失效的情况
  • mysql5.7注册码_Mysql5.7 用户与授权
  • mysql左右连接语法_图解MySQL 内连接、外连接、左连接、右连接、全连接……太多了...
  • mysql增加缓存的命令_MySQL查询缓存设置 提高MySQL查询性能 | 学步园
  • mysql desc limit_MySql sql优化之order by desc/asc limit M
  • mysql mycat java_mysql读写分离实现 jdk+mycat环境部署
  • rocketmq技术内幕:rocketmq架构设计与实现原理_这份553页的RocketMQ神仙手册在Github上了标星70.5k+实在太香了...
  • mysql中为什么删除一个表中的主键约束后该字段不能为空_MySQL数据表的操作
  • 获取textbox控件中输入值_Android 开发(一):Toast弹窗与获取控件的值
  • 深度学习异常检测_深度学习用来做日志异常检测
  • python图片分析中央气象台降水_python 画降水量色斑图问题
  • 圆锥形怎么画_如何画圆锥体的展开图?
  • matlab内部迭代函数_MATLAB:向量化编程提升值函数迭代(Value Function Iteration)的速度...
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【附node操作实例】redis简明入门系列—字符串类型
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • HomeBrew常规使用教程
  • IndexedDB
  • Java应用性能调优
  • Netty源码解析1-Buffer
  • Phpstorm怎样批量删除空行?
  • vue 个人积累(使用工具,组件)
  • Vue2.0 实现互斥
  • 关于for循环的简单归纳
  • 警报:线上事故之CountDownLatch的威力
  • 老板让我十分钟上手nx-admin
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端技术周刊 2019-02-11 Serverless
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 整理一些计算机基础知识!
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • #Ubuntu(修改root信息)
  • $(function(){})与(function($){....})(jQuery)的区别
  • (12)目标检测_SSD基于pytorch搭建代码
  • (2022 CVPR) Unbiased Teacher v2
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)四层和七层负载均衡的区别
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net解析传过来的xml_DOM4J解析XML文件
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • .net中生成excel后调整宽度
  • .ui文件相关
  • ??在JSP中,java和JavaScript如何交互?
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例