Jay*_*ani 6 c# asp.net asp.net-core-webapi
我有两个不同的asp.net core web api项目-->项目A和项目B。我想将项目A的控制器方法调用到项目B的控制器方法中。
例如,
方法GetDepartments()是项目 A 的控制器的一个方法,它返回静态值。我想将此方法调用到项目 B 的控制器中的另一个方法GetStudents()中
下面是用于HttpGet Api 的HttpClient 代码示例:
[HttpGet]
public async Task<HttpResponseMessage> GetRequestAsync(HttpRequestMessage Query)
{
try
{
using (HttpClient client = new HttpClient())
{
HttpResponseMessage response = await client.GetAsync("http://localhost:8080/document/quicksearch/"+ Query.RequestUri.Query);
if (response.IsSuccessStatusCode)
{
Console.Write("Success");
}
else
{
Console.Write("Failure");
}
return response;
}
}
catch (Exception e)
{
throw e;
}
}
Run Code Online (Sandbox Code Playgroud)
下面是用于HttpPost Api 的代码示例 HttpClient :
Public async Task PostRequestAsync()
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:6740");
var content = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("", "login")
});
var result = await client.PostAsync("/api/Membership/exists", content);
string resultContent = await result.Content.ReadAsStringAsync();
Console.WriteLine(resultContent);
}
}
Run Code Online (Sandbox Code Playgroud)
您必须在 IIS 上托管项目 A,然后只需GetDepartments从GetStudents()项目 B 的控制器中的托管 URL 调用 API。
public class ProjectBController : Controller
{
//your Hosted Base URL
string Baseurl = "http://192.168.90.1:85/";
// GET: Student
public async Task<ActionResult> GetStudents()
{
List<Student> StudentInfo = new List<Student>();
using (var client = new HttpClient())
{
//Passing service base url
client.BaseAddress = new Uri(Baseurl);
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//Sending request to find web api REST service resource GetDepartments using HttpClient
HttpResponseMessage Res = await client.GetAsync("api/ProjectA/GetDepartments");
//Checking the response is successful or not which is sent using HttpClient
if (Res.IsSuccessStatusCode)
{
var ObjResponse = Res.Content.ReadAsStringAsync().Result;
StudentInfo = JsonConvert.DeserializeObject<List<Student>>(ObjResponse);
}
//returning the student list to view
return View(StudentInfo);
}
}
}
public class Student
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13359 次 |
| 最近记录: |