c# - HTTPClient Post 返回错误请求 400
问题描述
我撞到了一堵砖墙。请帮忙。我从来没有在我的 svc 文件中遇到任何断点,所以我不知道发生了什么。
我尝试了其他几种解决方案,但没有骰子....
我的 jsonstring 是
string jsonString = "[{\"details\":\"Hello World\"}]";
休息文件.cs:
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "updateDataViaPost", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
ResponseData updateDataViaPost(RequestData rdata);
客户代码:
using (HttpClient client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var request = new StringContent(jsonString, Encoding.UTF8, "application/json");
var response = client.PostAsync(requestUrl, request).Result;
var result = response.Content.ReadAsStringAsync();
}
请求数据
public class RequestData
{
[DataMember]
public string details { get; set; }
}
它现在使它成为这里的函数,但传递给它的 rdata 为空:
public Stream updateDataViaPost(RequestData rdata)
{
var data = rdata.details.Split('|');
......
看起来字符串需要是 string jsonString = "[{"details":"Hello World"}]";
解决方案
谢谢大家的帮助!!!!!!!!!非常感激。
现在为所有这些作品供将来参考:
[DataContract]
public class UpdateTableData
{
[DataMember]
public string TableName { get; set; }
[DataMember]
public string ColumnNames { get; set; }
[DataMember]
public string Values { get; set; }
[DataMember]
public string WhereColumnNames { get; set; }
[DataMember]
public string WhereValues { get; set; }
}
public string updateDataViaPost(UpdateTableData rdata)
{
..... (MY UNIQUE CODE)......
}
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "updateDataViaPost", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
//ResponseData updateDataViaPost(RequestData rdata);
string updateDataViaPost(UpdateTableData data);
string jsonString = new JavaScriptSerializer().Serialize(updateTable);
using (HttpClient client = new HttpClient())
{
//POST Request
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var request = new StringContent(jsonString, Encoding.UTF8, "application/json");
var response = client.PostAsync(URI, request).Result;
var result = response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult();
string strresult = result;
}
推荐阅读
- python - 使用python进行网页抓取,request.json()显示status_code为200但无法提取json数据
- python - Python Django TypeError:“模块”对象不可调用
- python - 检查列表是否包含任何字典键
- excel - 在 Excel 中为 .txt 路径指定新文件夹
- mysql - mysql按优先级顺序获取记录,无需全文搜索
- react-native - 错误:找不到模块'source-map-support'
- html - 在 HTML 中显示 YAML(Trello 风格的卡片)
- javascript - 为什么当我单击取消按钮时它仍然调用表单事件处理程序?
- android - 如何在 Android Studio Java 中将 JSON 数组显示到表格视图或布局中
- docker - Docker Compose - 如何包含实用程序 Python 脚本?