Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ASP.NET web API中创建输入参数和使用java web服务函数_Java_C#_Asp.net_Web Services - Fatal编程技术网

在ASP.NET web API中创建输入参数和使用java web服务函数

在ASP.NET web API中创建输入参数和使用java web服务函数,java,c#,asp.net,web-services,Java,C#,Asp.net,Web Services,我已经创建了一个JavaWeb服务,它具有添加功能。我还创建了一个ASP.NETWebAPI,它调用JavaWeb服务并显示结果。假设我输入了http://localhost:8080/addition/9/6 作为带有java web服务函数应添加的输入参数的URL。我得到的输出数据是{firstNumber:9,secondNumber:6,sum:15}。当我运行ASP.NET Web API时,我将被重定向到http://localhost:55223/ 我将得到输出数据{firstNu

我已经创建了一个JavaWeb服务,它具有添加功能。我还创建了一个ASP.NETWebAPI,它调用JavaWeb服务并显示结果。假设我输入了http://localhost:8080/addition/9/6 作为带有java web服务函数应添加的输入参数的URL。我得到的输出数据是{firstNumber:9,secondNumber:6,sum:15}。当我运行ASP.NET Web API时,我将被重定向到http://localhost:55223/ 我将得到输出数据{firstNumber:9,secondNumber:6,sum:15}

现在,我想做的是,当我运行我的ASP.NET Web API时,我应该能够在ASP.NET Web API的URL中输入参数http://localhost:55223/addition/9/6 我不想直接显示来自JavaWeb服务的结果,而是想在API中使用JavaWeb服务的函数来计算输入参数的总和。有人知道我该怎么做吗?我应该在代码中做哪些更改

这是我的密码:

ASP.NET Web API代码

RestfulClient.cs

public class RestfulClient
{
    private static HttpClient client;
    private static string BASE_URL = "http://localhost:8080/";

    static RestfulClient()
    {
        client = new HttpClient();
        client.BaseAddress = new Uri(BASE_URL);
        client.DefaultRequestHeaders.Accept.Add(
            new MediaTypeWithQualityHeaderValue("application/json"));
    }

    public async Task<string> addition(int firstNumber, int secondNumber)
    {
        try
        {
            var endpoint = string.Format("addition/{0}/{1}", firstNumber, secondNumber);
            var response = await client.GetAsync(endpoint);
            return await response.Content.ReadAsStringAsync();
        }
        catch (Exception e)
        {
            HttpContext.Current.Server.Transfer("ErrorPage.html");
        }
        return null;
    }
}
有人请帮我提前谢谢你

我想做的是,当我运行ASP.NET Web API时,我应该能够在ASP.NET Web API的URL中输入参数

WebAPI使用了许多约定,如果您玩得很好,那么一切都会很好。您需要做的第一件事是重命名控制器,如下所示:

public class AdditionController : ApiController
{
    public async Task<IHttpActionResult> Get(int firstNumber, int secondNumber)
    { 
        var result = await restfulClient.addition(firstNumber, secondNumber);
        return Ok(result);
    }
}
http://localhost:55223/addition?firstNumber=1&secondNumber=6
如果您想这样称呼它:

http://localhost:55223/addition/9/6
然后,您需要对WebApiConfig类进行一些更改。将以下内容添加到DefaultApi代码之前的代码中:


上面我们告诉路由引擎:嘿,路由引擎,如果url包含单词api/加法,后跟一个变量和另一个变量,那么使用加法控制器的Get方法*

问题和问题到底是什么?如果要从web api调用java服务,您已经在这样做了。我希望在运行ASP.NET web api时能够在URL中输入参数,然后我希望ASP.NET web api显示两个数字的总和,如`{firstNumber:1,secondNumber:1,sum:2}`。添加操作应该使用JavaWeb服务创建的函数来完成,而不是使用API中创建的任何新方法来完成。非常感谢您的回答。其中一个最好的解释是:如何调用java web服务?@susmithanaidu我认为这部分已经开始工作了。这不起作用:restfulClient.additionfirstNumber,secondNumber;?当我将该代码放入AdditionController:ApicController时,它不起作用。它给出了错误。当它位于我之前创建的控制器ApiController:controller下时,它会工作。当我使用您答案中的代码时,参数工作正常。唯一的问题是,当我调用JavaWeb服务时会出现错误。
http://localhost:55223/addition?firstNumber=1&secondNumber=6
http://localhost:55223/addition/9/6
config.Routes.MapHttpRoute(
    name: "AdditionApi",
    routeTemplate: "api/addition/{firstNumber}/{secondNumber}", 
    defaults: new { action = "Get", controller = "Addition" }
);