【发布时间】:2017-10-27 01:54:19
【问题描述】:
我有一个 ASP.NET Web API,它应该调用一个 java 添加 Web 服务。当我运行 java web 服务并输入 url http://localhost:8080/addition/9/6 时,我得到 {"firstNumber":9,"secondNumber":6,"sum":15} 作为输出数据。现在,我想在运行 ASP.NET Web API 应用程序时使用 ASP.NET Web API 来调用和显示该数据。我该怎么做呢?
这是我的代码:
ASP.NET Web API 代码
RestfulClient.cs
public class RestfulClient
{
private string BASE_URL = "http://localhost:8080/addition/";
public Task<string> addition()
{
{
try
{
var client = new HttpClient();
client.BaseAddress = new Uri(BASE_URL);
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = client.GetAsync("addition").Result;
return response.Content.ReadAsStringAsync();
}
catch (Exception e)
{
HttpContext.Current.Server.Transfer("ErrorPage.html");
}
return null;
}
}
}
ApiController.cs
private RestfulClient restfulClient = new RestfulClient();
public ActionResult Index()
{
var Result1 = restfulClient.addition().Result;
return Content(Result1);
}
Java Web 服务代码
AdditionController.java
@RestController
public class AdditionController {
private static final String template = " %s";
private static int getSum;
@RequestMapping("/addition/{param1}/{param2}")
@ResponseBody
public Addition getSum
(@PathVariable("param1") int firstNumber,@PathVariable("param2") int secondNumber) {
return new Addition(
(String.format(template, firstNumber)), String.format(template, secondNumber));
}
}
有人请帮助我。非常感谢您。
【问题讨论】:
-
顺便说一句,你必须
awaitasync 方法,否则你不会得到他们的结果。见here。 -
好的,非常感谢
-
@SusmithaNaidu 目前的问题是什么?
-
起初,当我的 java web 服务没有接受任何参数时,这个 restfulClient.cs 类起作用了。但是,当我将参数添加到我的 java web 服务时,这个类不起作用。我不确定我应该如何编辑它。你能指导我完成吗?