相关疑难解决方法(0)

如何使用ASP.NET Core Web API传输/接收原始字节数组?

我编写了我的第一个ASP.NET Core Web API服务器.路由正在运行,正在发送/接收.我想发送一个原始的Byte数组来响应Get,我想绕过任何序列化(以及我的WPF客户端中的任何反序列化).例如,在我的服务器中:

[HttpGet("api/data")]
public Byte[] GetData()
{
    Byte[] data = new Byte[]{1, 2, 3, 4, 5};
    return data; // No JSON, BSON or anything else...just my array. Is it done this way?
}
Run Code Online (Sandbox Code Playgroud)

在我的WPF客户端中,我想使用HttpClient类来接收数组 - 不需要反序列化:

// Assume an instantiated and initialized HttpClient object called "httpCLient"
HttpResponseMessage response = httpClient.GetAsync("/api/data").Result;
// Now what?
Run Code Online (Sandbox Code Playgroud)

我已经浏览了互联网,但我没有找到这方面的例子,而且我一直无法弄清楚.有人可以告诉我这是怎么做到的吗?

更新:我相信客户端Byte []检索可以通过"HttpContent.ReadAsByteArrayAsync()"完成,如下所示:将HttpContent转换为byte [].我仍然不确定如何从ASP.NET Core Web API端发送原始(未序列化)Byte [].

c# asp.net-core

7
推荐指数
2
解决办法
4952
查看次数

从HttpResponseMessage中返回的JSON中获取API值

我创建了一个Controller和方法,用于从API获取数据.我HttpResponseMessage用来得到回应.一切正常,但我无法获得我想要的JSON格式的确切数据.
方法如下所示:

public class TestController : ApiController
    {
        [HttpGet]

        public async Task<IHttpActionResult> TestMethod(...)
        {
            string _apiUrl = String.Format("...");
            string _baseAddress = "...";

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(_baseAddress);
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                HttpResponseMessage response = await client.GetAsync(_apiUrl);


                if (response.IsSuccessStatusCode)
                {
                    return Json(response);
                }
            }
            return NotFound();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我得到的回应如下:

{
  "Version": {
    "Major": 1,
    "Minor": 1,
    "Build": -1,
    "Revision": -1,
    "MajorRevision": -1,
    "MinorRevision": -1
  },
  "Content": {
    "Headers": [
      {
        "Key": "Content-Length",
        "Value": [ …
Run Code Online (Sandbox Code Playgroud)

c# xml asp.net-mvc json httpresponse

6
推荐指数
1
解决办法
2万
查看次数

如何以正确的字符串形式获取httpWebresponse的内容?

有时我会从几个网站得到一些乱码回复.

这是我的代码:

Stream responseStream = response.GetResponseStream();
buffer = new Byte[256];//
int bytesRead;
while ((bytesRead = responseStream.Read(buffer, 0, buffer.Length)) > 0)
{
   outStream.Write(buffer, 0, bytesRead);
   //resp=resp+ .UTF8.GetString(buffer, 0, bytesRead);
   resp=resp + Encoding.ASCII.GetString(buffer); //resp is string
}
Run Code Online (Sandbox Code Playgroud)

当我从www.google.co.in请求时,我在resp字符串中得到以下字符:

?\ B\0\0\0\0\0ερ}ÿ·F ?????????Ž?????? {7米??? OX吗?\ r?ÿ??? 33 ?? d; Y ???? N 0?

我该如何克服这个问题?它与编码有关吗?

c# character-encoding httpwebresponse responsestream

0
推荐指数
1
解决办法
2万
查看次数