【问题标题】:How do I add boolean to form content C#如何添加布尔值以形成内容 C#
【发布时间】:2021-03-01 16:55:47
【问题描述】:

我正在向站点发送数据,但是当我将true 添加到表单内容时,它会将其添加为string。如何将其转换为Boolean 类型?

我想要的结果:

我的实际结果:

HttpClient client = new HttpClient();
StringContent content = new StringContent("{\"password\":\"123123asd\"," + "\"remember_me\":\""+true+"\"," + "\"username\":\"" +"feridisgenderli"+ "\"}");
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = await client.PostAsync(LoginAPI.ToString(), content);
var stringContent = await response.Content.ReadAsStringAsync();
Console.Write(stringContent);

【问题讨论】:

  • 不要发布代码图片,发布代码本身。
  • 出于偏好,不要手动构建 JSON,这样就不会有语法问题。构建一个对象,然后使用知道如何正确序列化的已建立的代码库(例如 Newtonsoft.JSON 或类似的代码库)将其序列化为 JSON,要简单得多、更易读且不易出错。
  • 需要记住的一点,传递这样的凭据真的很糟糕。我会联系这个 API 的所有者。

标签: c# httpclient


【解决方案1】:

你专门用引号括起来:

StringContent content = new StringContent("{\"password\":\"123123asd\"," + "\"remember_me\":\""+true+"\"," + "\"username\":\"" +"feridisgenderli"+ "\"}");

不要那样做,它不会有引号:

StringContent content = new StringContent("{\"password\":\"123123asd\"," + "\"remember_me\":true," + "\"username\":\"" +"feridisgenderli"+ "\"}");

但更一般地说,您通常不会使用字符串构建 JSON。使用对象并将其序列化为 JSON 格式。

【讨论】:

    【解决方案2】:

    首先,您要连接一个字符串。这在具有布尔类型的 C# 中恰好是可以的,但并非所有语言都会将 true 转换为 "true"。考虑serializing an object instead

    c# 代码"\"remember_me\":\""+true+"\"," 将导致"remember_me": "true",,因为您在布尔值周围包含了\",即:

    Console.Write("\"" + true + "\""); // -> "true"
    Console.Write("" + true); // -> true
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-20
      • 2015-02-15
      相关资源
      最近更新 更多