繁体   English   中英

ASP.NET 5,Microsoft.AspNet.WebApi.Client程序包,在ASP.NET 5 beta3中未发现错误

[英]ASP.NET 5, Microsoft.AspNet.WebApi.Client package, not found error in ASP.NET 5 beta3

我有ASP.NET MVC 6应用程序,该应用程序调用了一些外部Web服务。 我使用此指南: http : //www.asp.net/web-api/overview/advanced/calling-a-web-api-from-a-net-client这是代码:

using System;
using System.Net.Http;
using System.Net.Http.Headers;

namespace TestService.Web.Code
{
    internal class ServiceProxy
    {
        internal string Get(string predicate)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:8001/");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage response = client.GetAsync(string.Format("TestService/LookupService" +
                                                                         "/GetCountries?term={0}", predicate)).Result;

                if (response.IsSuccessStatusCode)
                {
                     var answer = response.Content.ReadAsStringAsync().Result;
                     return answer;
                }

                return string.Empty;
            }
        }
    }
}

但是,这是意外的问题:构建项目后出现3个错误:

  • 错误CS0246找不到类型或名称空间名称'HttpClient'

  • 错误CS0246找不到类型或名称空间名称'MediaTypeWithQualityHeaderValue'

  • 错误CS0246找不到类型或名称空间名称'HttpResponseMessage'

看起来像Microsoft.AspNet.WebApi.Client软件包版本与我的KRE版本不兼容。

我对吗? 我该如何解决呢?

这是project.json的内容:

{

    "webroot": "wwwroot",
    "version": "1.0.0-*",
    "dependencies": {
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta3",
    "Microsoft.AspNet.Mvc": "6.0.0-beta3",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta3",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta3",
    "Microsoft.AspNet.Security.Cookies": "1.0.0-beta3",
    "System.Net.Http": "4.0.0-beta-22605",
    "Microsoft.AspNet.WebApi.Client": "5.2.3",
    "Microsoft.AspNet.Mvc.WebApiCompatShim": "6.0.0-beta3"
},
"frameworks": {
    "aspnet50": {
        "frameworkAssemblies": {
            "System.Net.Http": "4.0.0.0",
            "System.Net": "4.0.0.0"
        }
    },
    "aspnetcore50": {
        "dependencies": {
            "System.Net.Http": "4.0.0-beta-22605"
        }
    }
},
"exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
],
"bundleExclude": [
    "node_modules",
    "bower_components",
    "**.kproj",
    "**.user",
    "**.vspscc"
]
}

你基本上是对的。 在您的示例中,Microsoft.AspNet.WebApi.Client`程序包同时用于clrcore和clr运行时。 该软件包只能用于clr运行时。

使用最新的更改(重命名及所有其他功能),这是一个工作片段:

using System;
using System.Net.Http;
using System.Net.Http.Headers;

public class Program
{
    public void Main(string[] args)
    {
    }

    internal class ServiceProxy
    {
        internal string Get(string predicate)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:8001/");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage response = client.GetAsync(string.Format("TestService/LookupService" +
                                                                         "/GetCountries?term={0}", predicate)).Result;

                if (response.IsSuccessStatusCode)
                {
                     var answer = response.Content.ReadAsStringAsync().Result;
                     return answer;
                }

                return string.Empty;
            }
        }
    }
}

project.json:

{
    "dependencies": {
    },
    "frameworks": {
        "dnx451": { 
            "dependencies": {
                                "Microsoft.AspNet.WebApi.Client": "5.2.3"
            }
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM