我正在使用一个 asp.net 应用程序,我在其中使用 HttpClient 调用 web api。
在 Web API Controller 中,我传递了两个参数,一个是 int,第二个是 string。
代码如下:
public HttpResponseMessage Get(int submissionID, string jsonData)
{
}
当我使用 httpClient 传递一个 int 和一个字符串参数时,这工作正常没有问题
下面是我的httpClient代码:
public void GetWebApiData(int fileID, String jsonData)
{
var client = new HttpClient();
var task = client.GetAsync("http://localhost:1469/api/Smartling/" + fileID + "/"+jsonData)
.ContinueWith((taskwithresponse) =>
{
var response = taskwithresponse.Result;
var jsonString = response.Content.ReadAsStringAsync();
jsonString.Wait();
var getVal = jsonString.Result;
});
task.Wait();
}
在上面的代码中,如果我传递的不是 json 数据,它会给出错误响应代码 400 Bad Request。
同样,我使用了 jQuery ajax 调用,它工作正常,没有问题。
如何将JSON数据作为参数传递?
最佳答案
假设你有课
public class Sample
{
public string Value1 { get; set; }
public string Value2 { get; set; }
}
在客户端
public async static Task<Boolean> GetWebApiData(int fileID,string jsonData)
{
var client = new HttpClient();
Sample model = new Sample();
model = Newtonsoft.Json.JsonConvert.DeserializeObject<Sample>(jsonData);
var response = await client.GetAsync(string.Format("http://sample.com/api/test/{0}?model.value1={1}&model.value2={2}", fileID ,model.Value1, model.Value2));
if (response.StatusCode == HttpStatusCode.OK)
return true;
else
return false;
}
在服务器端
[HttpGet]
public IHttpActionResult Get(int id,[FromUri]Sample model)
{
//do something
return Ok();
}
关于asp.net - 如何使用 HttpClient 将 Json 数据作为参数传递给 web api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37721300/