这个base64在requestHeader里面变成了
base64=hySGNg22yX0AIjNQvNJw0xHEbi32NH%2BiRVKDkbOmUiKpxW0%2FS6rUgfLmSa527Y8zZ3GmEzfXMB8ry8fH5GjGeJFGqFxDC4A2hLlvIFzyiDeUCqloGDAJoOLa8Jnif1C8nwRte0GNCRM5RXkshLKZP2itZclgDCYz6OgAF7oLNluoB44cZ3AgF1Q8hVgME8LeqgOqxsIzTt3Xn%2B96j7zp%2FwA%3D

他把base64里面一些/和= 给转成%2F之类的东西了。

所以webservice接收到的参数是错的。。

解决办法:

string base64 = "base64=hySGNg22yX0AIjNQvNJw0xHEbi32NH+iRVKDkbOmUiKpxW0/S6rUgfLmSa527Y8zZ3GmEzfXMB8ry8fH5GjGeJFGqFxDC4A2hLlvIFzyiDeUCqloGDAJoOLa8Jnif1C8nwRte0GNCRM5RXkshLKZP2itZclgDCYz6OgAF7oLNluoB44cZ3AgF1Q8hVgME8LeqgOqxsIzTt3Xn+96j7zp/wA=";
byte[] buffer = Convert.FromBase64String(base64);
string Base64StrData = Convert.ToBase64String(buffer).Replace("+", "%2B");//注意加号(’+‘)的替换处理,否则由于加号经过Url传递后变成空格而得不到合法的Base64字符串
string postData = "str=" + Base64StrData;
byte[] dataArray = Encoding.Default.GetBytes(postData);
/// <summary>
/// POST请求与获取结果
/// </summary>
public static string HttpPost(string Url, string postDataStr)
{
try
{
postDataStr = postDataStr.Replace("+", "%2B");
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.Timeout = ;
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postDataStr.Length;
StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.ASCII);
writer.Write(postDataStr);
writer.Flush();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
string encoding = response.ContentEncoding;
if (encoding == null || encoding.Length < )
{
encoding = "UTF-8"; //默认编码
}
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
string retString = reader.ReadToEnd();
return retString;
}
catch (Exception ex)
{
return null;
}
}

C# POST数据base64到接口会出错的问题的更多相关文章

  1. Spring Boot的数据访问:CrudRepository接口的使用

    示例 使用CrudRepository接口访问数据 创建一个新的Maven项目,命名为crudrepositorytest.按照Maven项目的规范,在src/main/下新建一个名为resource ...

  2. python爬虫----爬取阿里数据银行websocket接口

    业务需求:爬取阿里品牌数据银行的自定义模块==>>>人群透视==>>>查看报告==>>数据 发现:数据通过websocket接口传递,此类型接口的详细理 ...

  3. contentprovider提供程序间共享数据的统一接口

    contentprovider提供程序间共享数据的统一接口

  4. Tcp 数据对象传输接口对象设计

    输入是一个对象inputObj,接口对象.Send(inputObj),对端接收之后解包成outputObj(与inputObj应相同),触发onPackageReceive事件 事件 public ...

  5. web全栈应用【爬取(scrapy)数据 -> 通过restful接口存入数据库 -> websocket推送展示到前台】

    作为 https://github.com/fanqingsong/web_full_stack_application 子项目的一功能的核心部分,使用scrapy抓取数据,解析完的数据,使用 pyt ...

  6. Layui数据表格的接口数据请求方式为Get

    Layui数据表格的接口数据请求方式为Get

  7. HttpClient发送Json数据到指定接口

    项目中遇到将Json数据发送到指定接口,于是结合网上利用HttpClient进行发送. /** * post发送json数据 * @param url * @param param * @return ...

  8. 构建json数据post到接口的若干条规则

    接受数据接口: public ActionResult PostDownloadLog(PostDownloadLog postDownloadLogs) PostDownLoadLogL类 publ ...

  9. Excel导入数据到Sql server 中出错:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”

    从Excel导入数据到Sql server 时,由于表中的数据有的很长,导入时出现如下错误(如果数据不是很长,255内以内,则不会出现错误): 出错原因: SQL Server的导入导出为了确定数据表 ...

随机推荐

  1. “一键制作启动u盘失败”的主要原因是什么?

    一键制作启动u盘失败的主要原因是什么?今天u启动小编就和大家一起来分析原因并寻求答案吧!     原因分析:   1.u盘内有文件正在运行或者是打开:   2.u盘自身的质量问题:   3.最主要的原 ...

  2. (转载)设计模式之-策略模式(Strategy)

    原文:http://blog.sina.com.cn/s/blog_48df74430100t2m7.html 前言 部门组织培训,<Effective Java>,每人每天给大家讲解一节 ...

  3. Faiss教程:索引(1)

    索引是faiss的关键知识,我们重点介绍下. 索引方法汇总 有些索引名,我就不翻译了,根据英文名去学习更准确. 索引名 类名 index_factory 主要参数 字节数/向量 精准检索 备注 精准的 ...

  4. JSP怎么将表单提交到对应的servlet

    昨天学习了这些内容,今天做一下分享吧,个人感觉挺乱的....呵呵,其实没事,慢慢就好了.难的不会,会的不难嘛!努力+认真就可以了,相信大家都可以的!加油!!! 下面的图是我用myeclipse建立的项 ...

  5. golang的urlrouter

    起因 做权限管理,需要匹配路由,这个需要路由查找算法,一般采用tried 树,然而之前没研究过,一时半会也写不出来.在GitHub上找了一些router,然而都和http请求结合的很紧密,剥离一个纯粹 ...

  6. [转]httpclient编码

    这几天都在纠结Java Web开发中的中文编码问题.其实,很多Java Web开发者都被中文编码“折磨”过,网络上有大量的讨论.以前我也读过这方面的博文,读完后感觉似乎懂了,好像知道了编码问题的原因和 ...

  7. vagrant中css,img不生效的问题

    用vagrant搭建了一个共享开发平台,修改css文件后,页面看不到效果,通过查看源文件地址,发现新修改的Css文件并没有加载进来,加载的还是旧的文件地址.一开始以为是浏览器有缓存,清空了各种浏览器缓 ...

  8. matplotlib-plot-style

    style 1.绘制x=1 2.不同线宽 enumerate(Widths) 3.线型(实线,虚线,点划线) linestyle set_dashes 4.自动设置线颜色 5.点的显示形式 marke ...

  9. 图像颜色--opencv scalar

    Scalar定义可存放1—4个数值的数值,其结构体如下: typedef struct Scalar { double val[4]; }Scalar; 例如:Scalar s: 如果使用的图像是1通 ...

  10. js android页面被挂起问题解决

    问题: 页面上设了定时器,但浏览器后台运行被挂起时,页面定时器暂停 解决: 向服务器发送同步请求,服务器延时1秒返回.页面收到返回时再次发送请求 服务器相当于起博器,维持页面将停的心跳