ASP.Net Web API HttpClient 不向目标 Web API Uri 发送数据
ASP.Net Web API HttpClient doesn't send data to target Web API Uri
我正在尝试 post 数据从 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
我该如何解决这个问题?
请检查指定的uri是否正确。
请发现:
client.BaseAddress = new Uri("http://localhost:64395/api/");
和await client.PostAsJsonAsync("api/articles", article);
给我们:http://localhost:64395/api/api/articles
我正在尝试 post 数据从 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
我该如何解决这个问题?
请检查指定的uri是否正确。
请发现:
client.BaseAddress = new Uri("http://localhost:64395/api/");
和await client.PostAsJsonAsync("api/articles", article);
给我们:http://localhost:64395/api/api/articles