ASP.Net Web API HttpClient не отправляет данные в целевой веб-API Uri - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь отправить данные из Web Api в другой Web Api в другом решении проекта с таким контроллером, как этот

public class PublishWebController : ApiController
{
    static HttpClient client = new HttpClient();

    static async Task<Uri> CreateArticleAsync(Article article)
    {
        HttpResponseMessage response = await client.PostAsJsonAsync("api/articles", article);
        response.EnsureSuccessStatusCode();

        // return URI of the created resource.
        return response.Headers.Location;
    }

    void Main()
    {
        Post().GetAwaiter().GetResult();
    }

    //POST api/<controller>
    [Mime]
    public async Task<Article> Post()
    {

        client.BaseAddress = new Uri("http://localhost:64395/api/");
        client.DefaultRequestHeaders.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        var fileuploadPath = HttpContext.Current.Server.MapPath("~/uploads");
        var multiFormDataStreamProvider = new MultiFileUploadProvider(fileuploadPath);
        await Request.Content.ReadAsMultipartAsync(multiFormDataStreamProvider);
        string uploadingFileName = multiFormDataStreamProvider.FileData.Select(x => x.LocalFileName).FirstOrDefault();

        return new Article
        {
            Title = HttpContext.Current.Request.Form["Title"],
            ArticleContent = HttpContext.Current.Request.Form["ArticleContent"],
            ImagePath = "~/Images/" + Path.GetFileName(uploadingFileName),
        };

    }
}

Когда я попытался отправить данные с помощью Postman, он вернул значениек его локальному хосту, но ничего к URI, на который я нацелился

sending data

uri target

Как мнерешить эту проблему?

1 Ответ

0 голосов
/ 19 октября 2018

Пожалуйста, проверьте правильность указанного URI.

Найдите:

client.BaseAddress = new Uri("http://localhost:64395/api/");

и await client.PostAsJsonAsync("api/articles", article);

дает нам: http://localhost:64395/api/api/articles

...