博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Content-Type boundary 问题
阅读量:4597 次
发布时间:2019-06-09

本文共 2061 字,大约阅读时间需要 6 分钟。

我并不知道问题怎么描述清楚一些。

事情是这样的,使用  Microsoft Dynamics CRM Server 2016 做CRM系统的时候用到 使用 Web API 执行批处理操作(参见SDK或者  ).

官方只给出 相应报文的 文本。告诉你 响应头 怎么写,相应体 怎么写,而我要做的是用c# 实现它。

首先 我使用了 谷歌浏览器 的一个插件,叫 postmen ,第一次听同学说起,还下载错了,下载了 成了 桌面应用程序,其实 是插件。

为啥我用插件呢,因为网站需要登录才能调API啊。需要共享秘钥。

 

就长这样哈。

然后照着官网的例子,改改就测试通过了。

接下来 就要写 c#代码了。

然后遇到问题了。

不知道怎么 生成Content-Type: multipart/mixed;boundary=changeset_BBB456 !!!

首先尝试了HttpClient  类, DefaultRequestHeaders.TryAddWithoutValidation  方法试了试,不行,位置不对。

StringContent 类试了试 也不行。

最后发现 了 MultipartContent类,果断可以了。

代码如下哈,因为里面有项目封装的一些东西,copy过去 是不能用的哈,意思就这意思。

 

public static ApiResult PostBatch()        {            object obj = new object();            string url = "$batch";            var batchUniqueIdHeader = "batch_AAA123";//Guid.NewGuid().ToString();            ICredentials credentials = null; EnsureCredentials(ref credentials);            using (var client = new CRMClient(credentials, null))            {                var data = new                {                    neo_phonesysstatus = 110000001                };                var multipartContent = new MultipartContent("mixed", "batch_AAA123");                var stringContent = new StringContent(string.Format(@"            --{0}            Content-Type: application/http            Content-Transfer-Encoding:binary            Content-ID: 1            PATCH  http://dev.crm.xiaoniu66.com/DevCRM/api/data/v8.0/neo_marketings(B1D14BC0-2B6B-E611-80C4-005056A97E8D) HTTP/1.1            Content-Type: application/json;type=entry            {1}            --{0}--            ", "changeset_BBB456", data.ToJson()));                stringContent.Headers.Clear();                stringContent.Headers.Add("Content-Type", "multipart/mixed;boundary=batch_AAA123");                multipartContent.Add(stringContent);                HttpResponseMessage response = client.PostAsync(url, multipartContent).Result;                var result = HandleApiResult(response);                return result;            }        }

 

 

 其中 遇到的几个问题是,要记住 响应头 必须 和 相应体 中间隔着空行。

 

转载于:https://www.cnblogs.com/bingguang/p/5811329.html

你可能感兴趣的文章
cocos2d下,优秀骨骼spine的换装思路
查看>>
Windows 10 MBR转GPT
查看>>
iuplua test failure
查看>>
6 tr
查看>>
同开三本DJANGO,需要提升一下本职工作的能力啦
查看>>
这样就算会了PHP么?-2
查看>>
线段树 (区间查询最大 区间求和 区间加)带lazy
查看>>
三十而立,从零开始学ios开发(十二):Table Views(上)
查看>>
MySQL中的decimal
查看>>
gitlab+jenkins持续集成(一)
查看>>
4.signed/unsigned char
查看>>
iOS,UIImage有个contentmodel属性
查看>>
Debian 7 amd64 + fbterm + ucimf
查看>>
数据结构之【排序】复习题
查看>>
spring boot 首次请求Controller慢
查看>>
事件绑定
查看>>
grep命令详解
查看>>
iterm2快捷键
查看>>
asp.net 生成PDF方法
查看>>
EntityFramework 7 Join Count LongCount 奇怪问题(已修复)
查看>>