gpt4 book ai didi

c# - 将参数设置为 asp.net WebAPI URL

转载 作者:行者123 更新时间:2023-11-30 22:12:14 25 4
gpt4 key购买 nike

我有一个控制台应用程序,用于调用我的 MVC WebApi Controller 的 CRUD 操作。

目前我的 HTTP 请求设置如下:

string _URL = "http://localhost:1035/api/values/getselectedperson";

var CreatePersonID = new PersonID
{
PersonsID = ID
};

string convertedJSONPayload = JsonConvert.SerializeObject(CreatePersonID, new IsoDateTimeConverter());


var httpWebRequest = (HttpWebRequest)WebRequest.Create(_URL);
httpWebRequest.Headers.Add("Culture", "en-US");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Accept = "application/json";
httpWebRequest.Method = "GET";

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
streamWriter.Write(convertedJSONPayload);
streamWriter.Flush();
streamWriter.Close();
}

return HandleResponse((HttpWebResponse)httpWebRequest.GetResponse());

如何将 JSON ID 参数添加到 URL 并由我的 Controller “GetSelectPerson”接收?

public IPerson GetSelectedPerson(object id)
{
....... code
}

最佳答案

你在做一些非常矛盾的事情:

httpWebRequest.Method = "GET";

然后尝试将一些 JSON 负载写入请求的主体。

GET 请求意味着您应该将所有内容作为查询字符串参数传递。根据定义,GET 请求没有正文。

像这样:

string _URL = "http://localhost:1035/api/values/getselectedperson?id=" + HttpUtility.UrlEncode(ID);

var httpWebRequest = (HttpWebRequest)WebRequest.Create(_URL);
httpWebRequest.Headers.Add("Culture", "en-US");
httpWebRequest.Accept = "application/json";
httpWebRequest.Method = "GET";

return HandleResponse((HttpWebResponse)httpWebRequest.GetResponse());

然后是你的行动:

public IPerson GetSelectedPerson(string id)
{
....... code
}

现在,如果您想发送一些复杂的对象并使用 POST,那就完全不同了。

关于c# - 将参数设置为 asp.net WebAPI URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19840145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com