C# 从Seroperate MVC应用程序本地引用Web Api
我有以下Web ApiC# 从Seroperate MVC应用程序本地引用Web Api,c#,asp.net-web-api,asp.net-mvc-5,C#,Asp.net Web Api,Asp.net Mvc 5,我有以下Web Api public class ApiTestController : ApiController { // GET api/<controller> [HttpGet] public string UploadImage(int id) { return "You entered = " + id; } } 公共类ApiTestController:ApiController { //获取api/ [Htt
public class ApiTestController : ApiController
{
// GET api/<controller>
[HttpGet]
public string UploadImage(int id)
{
return "You entered = " + id;
}
}
公共类ApiTestController:ApiController
{
//获取api/
[HttpGet]
公共字符串上载映像(int-id)
{
return“您输入的=”+id;
}
}
当我运行并输入/api/ApiTest/3时,它会点击它并返回您输入的3
现在,在我单独的MVC应用程序中,我尝试通过执行以下操作来引用相同的api方法
private const string WebUrl = "http://localhost:1769/api/ApiTest/";
//
// GET: /Home/
public ActionResult Index()
{
try
{
var test = GetInvoiveNo(3);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
return View();
}
public string GetInvoiveNo(int id)
{
var uri = WebUrl + id;
using (var httpClient = new HttpClient())
{
Task response = httpClient.GetStringAsync(uri);
return JsonConvert.DeserializeObjectAsync<string>(response.ToString()).Result;
}
}
private const string WebUrl=”http://localhost:1769/api/ApiTest/";
//
//回家/
公共行动结果索引()
{
尝试
{
var测试=GetInvoiveNo(3);
}
捕获(例外情况除外)
{
Console.WriteLine(例如ToString());
}
返回视图();
}
公共字符串GetInvoiveNo(int id)
{
var uri=WebUrl+id;
使用(var httpClient=new httpClient())
{
任务响应=httpClient.GetStringAsync(uri);
返回JsonConvert.DeserializeObjectAsync(response.ToString()).Result;
}
}
但我得到了一个错误:
发生了一个或多个错误
因此,我研究了内部异常,它是这样说的:
分析值时遇到意外字符:S.路径“”,第0行,位置0。“}
现在我不确定我做错了什么,所以如果有人能告诉我或给我一个简单的例子,我将不胜感激。您的问题是您的回复格式不正确 在下面的代码中,您尝试调用user response.ToString(),这是错误的,您必须使用响应的结果
public string GetInvoiveNo(int id)
{
var uri = WebUrl + id;
using (var httpClient = new HttpClient())
{
var response = httpClient.GetStringAsync(uri);
return JsonConvert.DeserializeObjectAsync<string>(response.Result).Result;
}
}
公共字符串GetInvoiveNo(int-id)
{
var uri=WebUrl+id;
使用(var httpClient=new httpClient())
{
var response=httpClient.GetStringAsync(uri);
返回JsonConvert.DeserializeObjectAsync(response.Result).Result;
}
}
response.ToString()的值是多少?我刚刚尝试了你的代码,但下面有一条红色的错误线。结果显示无法解析符号“Result”。请参阅我的更新。我已从任务响应更改为var response。刚刚注意到你编辑了我们的答案让我快速尝试