Home > Blockchain >  How to return whatever is returned from remote server?
How to return whatever is returned from remote server?

Time:10-13

I have the following WebClient code that is supposed my code acts as a proxy, and link to remote server, I would like to throw up whatever response that is returned from the remote server, how can I do so? I do not want to handle exceptions or anything, just merely throwing responses.


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;
}

CodePudding user response:

You appear to be using WebClient in an MVC 4 project, so you're on old stuff. Consider upgrading to HttpClient and ASP.NET Core.

The principle that you want goes something like this:

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;
    }

}

So: do the request, and translate (map) it to the HttpResponseMessage (or IHttpActionResult, or ...) that your Web API platform requires.

  • Related