如何 return 从远程服务器 return 编辑什么?
How to return whatever is returned from remote server?
我有以下 WebClient 代码,假设我的代码充当代理,并且 link 到远程服务器,我想抛出从远程服务器返回的任何响应,我怎么能这样做?我不想处理异常或任何东西,只是抛出响应。
using (var client = new WebClient())
{
client.Headers[HttpRequestHeader.ContentType] = "application/json";
Uri NODE_LOGIN_PATH = new Uri(URI_Combine(NodeAPI, "auth/login"));
string jsonString = JsonConvert.SerializeObject(login_details);
JObject data = JObject.Parse(await client.UploadStringTaskAsync(NODE_LOGIN_PATH, jsonString));
return data;
}
您似乎在 MVC 4 项目中使用 WebClient,所以您使用的是旧东西。考虑升级到 HttpClient 和 ASP.NET Core。
你想要的原理是这样的:
public class FooController : ApiController
{
public HttpResponseMessage Get()
{
// Do the HTTP call
var httpResponse = client.DoSomeRequest();
// Translate
var apiResponse = new HttpResponseMessage
{
StatusCode = httpResponse.StatusCode.Map(...),
Headers = httpResponse.Headers.Map(...),
Body = httpResponse.Body.Map(...),
};
// Return
return apiResponse;
}
}
因此:执行请求,并将其转换(映射)到您的 Web API 平台需要的 HttpResponseMessage(或 IHttpActionResult,或...)。
我有以下 WebClient 代码,假设我的代码充当代理,并且 link 到远程服务器,我想抛出从远程服务器返回的任何响应,我怎么能这样做?我不想处理异常或任何东西,只是抛出响应。
using (var client = new WebClient())
{
client.Headers[HttpRequestHeader.ContentType] = "application/json";
Uri NODE_LOGIN_PATH = new Uri(URI_Combine(NodeAPI, "auth/login"));
string jsonString = JsonConvert.SerializeObject(login_details);
JObject data = JObject.Parse(await client.UploadStringTaskAsync(NODE_LOGIN_PATH, jsonString));
return data;
}
您似乎在 MVC 4 项目中使用 WebClient,所以您使用的是旧东西。考虑升级到 HttpClient 和 ASP.NET Core。
你想要的原理是这样的:
public class FooController : ApiController
{
public HttpResponseMessage Get()
{
// Do the HTTP call
var httpResponse = client.DoSomeRequest();
// Translate
var apiResponse = new HttpResponseMessage
{
StatusCode = httpResponse.StatusCode.Map(...),
Headers = httpResponse.Headers.Map(...),
Body = httpResponse.Body.Map(...),
};
// Return
return apiResponse;
}
}
因此:执行请求,并将其转换(映射)到您的 Web API 平台需要的 HttpResponseMessage(或 IHttpActionResult,或...)。