小编jto*_*th3的帖子

控制台应用程序HttpClient发布到mvc web api

我有一个从Visual Studio 2012模板构建的默认mvc web api实例.它在默认的ValuesController中有以下路由和post方法 - MVC站点在初始创建时不会修改,而不是Post方法的内容.此外,我正在使用.NET framework 4.0,因为我计划将Azure作为目标.

注册方法

public static void Register(HttpConfiguration config)
{
    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );
}
Run Code Online (Sandbox Code Playgroud)

和Post方法

    // POST api/values
    public string Post([FromBody]string value)
    {
        if (value != null)
        {
            return "Post was successful";
        }
        else
            return "invalid post, value was null";
    }
Run Code Online (Sandbox Code Playgroud)

我创建了一个控制台应用程序,它使用HttpClient来模拟发布到服务,但不幸的是,进入Post的"值"始终为null.在HttpClient上的PostAsync调用之后成功命中了Post方法.

我不清楚如何映射我的请求,以便值包含我传入的StringContent ...

    static void Main(string[] args)
    {
        string appendUrl = string.Format("api/values");
        string totalUrl = "http://localhost:51744/api/values";
        HttpClient client = new HttpClient();
        client.DefaultRequestHeaders.Add("Accept", "application/xml"); …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-web-api dotnet-httpclient

6
推荐指数
1
解决办法
9740
查看次数