在WEB API DotNet中通过HTTPS强制HTTP

时间:2016-11-21 00:04:16

标签: .net rest asp.net-web-api

我有一个web api控制器,我需要在Java客户端使用它,但是证书有问题,所以我需要使用HTTP而不是HTTPS。

public static class WebApiConfig
{

    public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            constraints : null,
            defaults: new { id = RouteParameter.Optional }
        );
        config.Formatters.Remove(config.Formatters.XmlFormatter);
        config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("application/json"));
    }
}


public class CommentAPIController : ApiController
{
    IItemService ise = new ItemService();
    ICategoryService ice = new CategoryService();
    // GET: api/CommentAPI
    [HttpGet]
    public IEnumerable<Category> Get()
    {
        List<Category> list = new List<Category>();
        foreach (Category item in ice.getAllCategory())
        {

            list.Add(item);



        }
        return list;
    }

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

请编辑web api项目的属性(右键单击项目,然后单击属性,或展开项目内容,然后双击“属性”组)。

然后导航至Web屏幕,查看您的任何网址是否指向https

如果是,请将其更改为http://并重新启动。通常,您必须使用[RequireHttps]属性强制使用https,因此您的问题恰恰相反。

根据我们在评论中的讨论。最后,您一直在为HTTPS服务提供错误的端口,这是我指向的确切屏幕。

让我们把它留在其他地方。