我是这个人的新手,所以请保持温柔。
我正在向web服务添加一个方法,以便它可以从另一个方法接收POST。 POST在正文中包含一个JSON对象,其中包含接收解决方案中我需要的参数。
我正在使用HttpClient的PostAsync方法发送数据(如FormUrlEncodedContent),我试图将其作为HttpRequestMessage接收。
当我尝试编译和构建时,我在接收服务中收到此错误
要成为XML可序列化,从IEnumerable继承的类型必须具有 Add(System.Object)在其所有级别的实现 继承层次结构。 System.Net.Http.Headers.HttpContentHeaders 没有实现Add(System.Object)。
奇怪的是我在POSTing webservice中使用了这两个(我在页面上使用ajax来测试它)并且没有遇到这个问题。
这是发件人:
string url = *url*;
HttpClient client = new HttpClient();
Dictionary<string, string> parameters;
parameters = new Dictionary<string, string>
{
{ "*variablename1", *string* },
{ "variablename2", *string* },
{ "variablename3", *string* },
{ "variablename4", *string* }
};
var content = new FormUrlEncodedContent(parameters);
HttpResponseMessage response = client.PostAsync(url, content).Result;
这应该是接收它......
public void Receive(HttpRequestMessage request)
{
string data = request.Content.ReadAsStringAsync().Result;
*Database object* = new *Database object*();
string decodedString = HttpUtility.UrlDecode(data);
*Stuff that processes decodedString into a dictionary and puts it in database*
我喜欢的是知道如何让它工作,所以HttpRequestMessage的替代品不依赖于具有add方法的HttpContentheaders,或者发送不具有&#的帖子的另一种方式39;在接收端需要它们。
对于模糊的代码道歉,我只是一个程序员三个月而且我的公司使用了很多机密数据,我只是背负着我。