c# - 为什么我没有从我的网络请求中得到任何东西?我应该寻找什么?
问题描述
首先,我是 C# 的新手。我正在 Visual Studio 2019 中编写一个 WPF 程序。在我的项目中,我有多个 Web 请求,并且在测试它们的工作方式时,功能很少:只发出了 Web 请求,并且到目前为止它们工作正常。登录授权请求仍然有效。
这是我的网络请求。
using (var client = new WebClientEx())
{
client.BaseAddress = serverurl.serviceurl;
client.UseDefaultCredentials = true;
string credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(excelvertibas.username + ":" + excelvertibas.password));
client.Headers[HttpRequestHeader.Authorization] = "Basic " + credentials;
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
client.Timeout = 90000;
byte[] postArray = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(domObjectVariables));
client.Headers.Add("Content-Type", "application/json");//----------------
client.Encoding = Encoding.UTF8;
byte[] responseArray = client.UploadData(serverurl.serviceurl + "StartAddDigitalObject", "post", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(domObjectVariables))); //----------------------------
domMetadataAddResponse = JsonConvert.DeserializeObject<StartAddDigitalObjectResponse>(Encoding.UTF8.GetString(responseArray));
}
基地址有效,我通过 Postman 手动测试。
我测试过的用户名和密码也是正确的。
Post 数组也传递了所需的信息,我在添加断点时检查了它。
我的问题是为什么这不再起作用了,我应该寻找什么?
仅供参考,这是应该将信息返回到响应数组的代码行,但由于某种原因它保持为空。
byte[] responseArray = client.UploadData(serverurl.serviceurl + "StartAddDigitalObject", "post", Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(domObjectVariables)));
在此之后程序中断,因为当我尝试进一步传递它时响应数组不包含任何内容。
解决方案
好的,我明白是什么问题,当我收到服务器的响应时,是我没有为服务器提供必要的字段来响应任何东西。所以代码一切都很好。
推荐阅读
- ios - 历史上是否有 UIKit 变化的概述?
- linux-kernel - 如何阅读使用 LKM 中的 perf 接口停用的指令?
- vb.net - 谁能告诉我们如何优化 SendAndWaitForResponse(Byte[], Int32, Int32, String) 方法?
- javascript - 使用 SWR 和 fetch api 的类型安全数据获取钩子?
- queue - 使用 Informatica 智能云服务从队列中读取旧消息
- java - HashMap<> 的不同设置方法
- mixins - 有没有一种简单的方法来检查某个东西是否是 mixin?
- python - 在 for 循环中插入给了我一个无限循环,并且无法在我想要的地方插入我想要的东西
- node.js - 在 Docker 中为 Puppeteer 安装 Firefox 浏览器二进制文件
- javascript - 更改数据源后角度材料排序标题不起作用