webapi 无法连接到远程服务器_测试webapi 出现远程服务器返回错误405 - CSDN
精华内容
参与话题
  • 一、检查错误错误 将 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 改为 HttpWebResponse response; try { response = (HttpWebResponse)request.GetResp...

    一、检查错误错误

    将 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    改为   HttpWebResponse response;
                try
                {
                    response = (HttpWebResponse)request.GetResponse();
                }
                catch (WebException ex)
                {
                    response = (HttpWebResponse)ex.Response;
                }
               
    

    二、解决问题

    如果抛出异常出现为:找到了与该请求匹配的多个操作

    则修改WebApi中的路由

            config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
    改为
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{action}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );

     

    展开全文
  • 。。 我也加了设置: ``` ... { ServicePointManager....这句的时候就异常,实在找不原因了! post连接:https://112.74.109.190/tniol-api/pos/login post数据:user_name=sapi&password=123 哪位大神帮忙看看呀
  • WebAPI 和 webservice的区别

    万次阅读 2016-05-17 10:13:25
    webapi无状态,相对webservice更轻量级。webapi支持如get,post等http操作http soap关系http:是一个客户端和服务器端请求和应答的标准(TCP)。http协议其目的是为了提供一种发布和接收htttp页面的方法一http协议的...

    WebAPI 和 WebService的区别

    webapi用的是http协议,webservice用的是soap协议
    webapi无状态,相对webservice更轻量级。webapi支持如get,post等http操作

    http soap关系

    http:是一个客户端和服务器端请求和应答的标准(TCP)。http协议其目的是为了提供一种发布和接收htttp页面的方法

    一http协议的客户端与服务器的交互:由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如”HTTP/1.1 200 OK”,和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。

    soap 协议:它描述了一种在分散或分布式的环境中如何交换信息的轻量级协议。soap在http协议的基础上,一个基于XML的协议。

    不同:都是底层的通信协议,请求包的格式不同而已,soap包是XML格式,http纯文本格式。

    关系:SOAP是个通信协议, SOAP在HTTP协议的基础上,把编写成XML的REQUEST参数, 放在HTTP BODY上提交个WEB SERVICE服务器(SERVLET,ASP什么的) 处理完成后,结果也写成XML作为RESPONSE送回用户端, 为了使用户端和WEB SERVICE可以相互对应,可以使用WSDL作为这种通信方式的描述文件,利用WSDL工具可以自动生成WS和用户端的框架文件,SOAP具备把复杂对象序列化捆绑到XML里去的能力。
      

    WCF和WEB API我该选择哪个?
      1、当你想创建一个支持消息、消息队列、双工通信的服务时,你应该选择WCF
      2、当你想创建一个服务,可以用更快速的传输通道时,像TCP、Named Pipes或者甚至是UDP(在WCF4.5中),在其他传输通道不可用的时候也可以支持HTTP。
      3、当你想创建一个基于HTTP的面向资源的服务并且可以使用HTTP的全部特征时(比如URIs、request/response头,缓存,版本控制,多种内容格式),你应该选择Web API
      4、当你想让你的服务用于浏览器、手机、iPhone和平板电脑时,你应该选择Web API

    SOAP:Simple Object Access Protocol
    简单对象访问协议(SOAP)是一种轻量的、简单的、基于 XML 的协议,它被设计成在 WEB 上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议( HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。

    HTTP协议: 应用层
    TCP协议 : 传输层

    HTTP协议详解之响应篇

    在接收和解释请求消息后,服务器返回一个HTTP响应消息。
    

    HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文
    1、状态行格式如下:
    HTTP-Version Status-Code Reason-Phrase CRLF
    其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。
    状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:
    1xx:指示信息–表示请求已接收,继续处理
    2xx:成功–表示请求已被成功接收、理解、接受
    3xx:重定向–要完成请求必须进行更进一步的操作
    4xx:客户端错误–请求有语法错误或请求无法实现
    5xx:服务器端错误–服务器未能实现合法的请求
    常见状态代码、状态描述、说明:
    200 OK //客户端请求成功
    400 Bad Request //客户端请求有语法错误,不能被服务器所理解
    401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
    403 Forbidden //服务器收到请求,但是拒绝提供服务
    404 Not Found //请求资源不存在,eg:输入了错误的URL
    500 Internal Server Error //服务器发生不可预期的错误
    503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常
    eg:HTTP/1.1 200 OK (CRLF)

    2、响应报头后述

    3、响应正文就是服务器返回的资源的内容

    http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html

    展开全文
  • 在iis中部署webApi项目

    万次阅读 2017-01-13 16:17:47
    如果想把webApi部署iis中需要以下几步: 1、在iis中添加新的网站,并在物理路径中选上发布的项目的物理路径; 2、在VS项目所在的物理路径中找到App_Data文件夹,这个文件夹里面存的是数据库文件,在VS发布项目的...

    在VS中已经完成webApi项目,并且测试已经通过。如果想把webApi部署到iis中需要以下几步:

    1、在iis中添加新的网站,并在物理路径中选上发布的项目的物理路径;

    2、在VS项目所在的物理路径中找到App_Data文件夹,这个文件夹里面存的是数据库文件,在VS发布项目的时候是不会把数据库相关的内容发布出去,所以需要手动把这两个数据库文件拷贝到发布的webApi项目文件夹中;

    3、给新建的网站添加一个Everyone用户(选中网站-->内容视图-->编辑权限-->安全-->编辑-->添加);

    4、设置请求筛选.config;

    5、在应用程序池中找到新建网站的应用,设置其标识为LocalSystem(设置应用程序池默认设置-->标识);

    6、绑定id地址。


    注意:

    1、VS发布webApi项目的时候,以文件系统的形式发布。

     2、由于这次项目的数据利用的VS自带的数据库存储,并没有另外使用专门的数据库软件; 并且VS发布webApi项目的时候,并没有把数据库相关的内容发布出去,需要手动把数据库文件拷贝到发布的项目文件夹里。

     3、Everyone用户是必要的,如果没有设置这个用户的话会出现如下图的错误:


    4、标识为LocalSystem;如果标识设置成NetworkService、ApplicationPoolIdentity、LocalService,浏览器会报错:

    "Message":"出现错误。","ExceptionMessage":"在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL Network Interfaces, error: 50 - 发生了 Local Database Runtime 错误。无法创建自动实例。有关错误详细信息,请参阅 Windows 应用程序事件日志。\r\n)




    展开全文
  • WebAPI接口调试技巧

    千次阅读 2020-06-22 13:20:23
    1.了解WebAPI接口 接口模式:基于MVC4.0的WebAPI 承载协议:HTTP 跟踪工具:IE11 请求方式:POST 请求URL:IP:Port/Application/Controller/ActionName/Parameters 请求参数:一串由JSON对象转化而成的字符串 响应...

    1.了解WebAPI接口

    • 接口模式:基于MVC4.0的WebAPI
    • 承载协议:HTTP
    • 跟踪工具:IE11
    • 请求方式:POST
    • 请求URL:IP:Port/Application/Controller/ActionName/Parameters
    • 请求参数:一串由JSON对象转化而成的字符串
    • 响应状态:200(OK)
    • 响应结果: 一串JSON格式的数据
    • 响应类型:application/json

    2.WebAPI接口的URL规则

    • URL规则:IP:Port/Application/Controller/ActionName/Parameters
    • 示例:192.168.202.53/wszwdtapi_v6.6/taskkind/gettaskkindsbycodename
      IP:192.168.202.53,Port:80(默认)
      ApplicationName:wszwdtapi_v6.6
      Controller:taskkind
      ActionName:gettaskkindsbycodename
      Parameters:无

    3.HTTP请求模式

    • 两种最常用见的HTTP 请求方法:
      GET 和 POST
    • 标准版的利用方案:
      统一使用POST方式,为接口后台提供统一的参数处理规则。
    • 接口限制:接口会限制HTTP请求模式,如果限制了POST方式,则GET时会报404错误。
      | GET | POST |
      | ------------- |-------------|
      | 从指定的资源请求数据| 向指定的资源提交要被处理的数据 |
      | 参数必须以键值对的形式包含在URL中 | 建议参数以JSON字符串存放在请求体中 |
      | 请求体为空 | 利用请求体传数据 |

    4.HTTP状态消息

    • 常见的状态
      | 常见状态 | 注释 |
      | ------------- |-------------|
      | 200 OK | 请求成功 |
      | 304 Not Modified | 未按预期修改文档。 |
      | 403 Forbidden | 对被请求页面的访问被禁止。|
      | 404 Not Found | 服务器无法找到被请求的页面。|
      | 500 Internal Server Error | 请求未完成。服务器遇到不可预知的情况。|
      | 501 Not Implemented | 请求未完成。服务器不支持所请求的功能。|
      | 503 Service Unavailable | 请求未完成。服务器临时过载或当机。 |
      ####更多状态请点击这里

    5.常见的HTTP协议跟踪工具

    • IE/Chrome/FireFox等浏览器开发人员工具-网络工具
      (注:IE推荐使用10+,Chrome调试界面为英文)
    • Fildder(http://www.telerik.com/fiddler)
      Fildder基础原理
    • PostMan(Chrome插件) (https://www.getpostman.com/)

    6.科学的剖析接口调用情况

    • 当访问接口不成功,且初步排查没发现问题时,就应该先从HTTP请求入手,而不是耗费太多时间纠结在代码上。
    1. 打开调试工具,重复请求过程(刷新页面或重新点击提交按钮)
    2. 通过调试工具,查看是否存在对应的请求
    3. 如果不存在请求,现判断调用代码是否出现异常,有没有发出请求?
    4. 请求存在,判断请求状态码,顺藤摸瓜的分析原因。
      例如最常见错误,假如HTTP状态码为404,就可以通过判断IP、端口号,请求方式、URL字符串来确定是否是代码问题还是部署问题。
    5. 请求后得到状态码为200,那么再仔细研究下接口的传入数据和传出数据。
      ###7.使用Fiddler工具分析传入数据与返回数据
      ####使用Fiddler工具
    6. 打开Fiddler
    7. 利用浏览器访问对应的页面
    8. 在Fiddler左侧请求列表中,找对刚才的页面
    9. 点击选中,在Fiddler右侧查看详细数据。请求正文

    响应正文

    这里写图片描述
    ####利用Fiddler右侧Composer模拟请求

    1. 选择请求方式Get或者Post
    2. 输入URL
    3. 如果有参数,在Request Body中输入
    4. 点击Excute,发送请求
    5. 在右侧Log Requests中选择刚执行的请求
      Composer模拟请求

    8.常见问题的解决

    ####跨域问题

    • 当我们跟踪到带有关键字“Access-Control-Allow-Origin ”的错误时,说明我们遇到了跨域问题!如图:
      错误示例
      跨域问题的根本来自于浏览器的一个安全策略:同源策略
      所谓“同源”指的是“三个相同”:协议相同、域名相同、端口相同(IE浏览器下只需要满足协议及域名相同)
      如果非同源,共有三种行为受到限制。
    1. Cookie、LocalStorage 和 IndexDB 无法读取。
    2. DOM 无法获得。
    3. AJAX 请求不能发送。
    • 目前有三种方法规避这个限制。1.JSONP,2.WebSocket,3.CORS
      标准版统一采用CORS方式来规避同源策略。
    1. .Net中,在需要访问的接口的返回头中,加入“源信息”
      代码如下:HttpContext.Response.AppendHeader(“Access-Control-Allow-Origin”, “*”);
      或者在WebConfig中,为每个返回头加入“源信息”
    <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" /></customHeaders>
    

    ####常见的403错误

    • .Net模式的WebAPI的403错误,是一个典型的Web应用程序问题。
    • 现象:IP、端口完全正常,同台服务器部署的其他Web程序能正常访问,本接口在其他服务器上也能正常开放!根据状态码提示:该接口的应用程序本身存在问题。
      错误详情
    • 一般经验:.Net的WebAPI接口,是基于.Net的MVC框架,老版本IIS未必支持MVC机制,导致HTTP请求无法成功识别。一般情况将程序进程配置为集成模式即可。也有可能是因为未将.Net Framework4.0注册进IIS导致,通过命令注册即可。
    • 具体参考:http://blog.csdn.net/lingxyd_0/article/details/43154867
    • Unable To connect the Romote Server(无法连接到远程服务器)
    • 问题:Unable To connect the Romote Server(无法连接到远程服务器)
    • 分析:这两个问题,仍是接口不能访问导致的。问题表现形式较以往很大不同,是因为访问接口的不是JS代码,而是后台代码。
    • 结论:检查配置的接口地址是否正确,或者接口服务器是否开启。
    展开全文
  • WebSocket 和socket、HTTP的区别和联系

    万次阅读 2017-08-02 11:34:20
    一、WebSocket 是什么?...HTML5 Web Sockets规范定义了Web Sockets API,支持页面使用Web Socket协议与远程主机进行全双工的通信。它引入了WebSocket接口并且定义了一个全双工的通信通道,通过一个单一的套接字在We
  • try { var rsp = (System.Net.HttpWebResponse)req.GetResponse();//正常情况获取web服务器返回数据 } catch (System.Net.WebException ex)...//远程服务器返回错误: (400) 错误的请求。 var strResponse = GetRespon
  • 实时 web 功能是让服务器代码将内容推送到连接的客户端立即可用,而不是让服务器等待客户端请求新数据的能力。 SignalR 是一个集成的客户端与服务器库,基于浏览器的客户端和基于 ASP.NET 的服务器组件可以借助它来...
  • 从Http的连接到WebSocket

    万次阅读 2012-07-16 11:15:45
    1、HTTP协议对长连接的支持以及各浏览器的支持情况 ...2、WEB客户端与服务端信息交互的几种方式 1)、Flash XMLSocket 入门示例:http://en.wikipedia.org/wiki/XMLSocket 不足: a)、客户端必须安装 Flash 播
  • 什么是SignalR?...即时通讯Web服务就是服务器将内容自动推送已经连接的客户端,而不是服务器等待客户端发起一个新的数据请求。   SignalR能够被运用各种类型的即时响应应用。你完全可以运用SignalR实...
  • 浏览器可以访问;WebClient(),HttpWebResponse 类都不能访问
  • 关于Jupyter notebook远程访问的配置我就在这赘述了。 配置好之后可能还是访问不了! 这时候需要建立个通道 ssh root@47.94.*.* -L127.0.0.1:1234:127.0.*.*:8888 #127.0.0.1:1234是用户端的ip #127.0.*.*:8888...
  • javaweb开发和j2ee区别

    万次阅读 2013-06-10 09:26:02
     1 javaweb开发 基于JAVA的一般WEB开发,包括了JSP/SERVLET 需要WEB服务器的支持,比如TOMCAT等.(因此只有一个服务器即可。)  2 j2ee开发 然而基于J2EE企业级的开发,他需要的是不只是WEB容器,还需要一个应用...
  • vSphere API 是作为一种语言无关的 Web 服务实现的,它基于一个远程过程调用机制,客户端应用程序使用它来访问 ESXi和 vCenter 服务器系统上的服务和组件。本章节主要包括以下内容: ■ vSphere Client-Server 架构 ...
  • .net core WebApi 部署IIS中的注意事项

    千次阅读 2019-06-13 17:06:42
    检查Internet 信息服务(IIS)管理器 服务器的模块里面有没有 托管模块。如下图: 如果没有此模块,下载链接:https://pan.baidu.com/s/1brXNwbYBzlIbG4FsulByww 提取码:gr37 这个是netcore2.1版本 安装完成...
  • Feign - 独立使用 - 替代HttpClient

    千次阅读 2019-01-09 13:47:09
    连接API的接口准备1.1.2. 申明远程接口的本地代理1.1.3. 远程API的本地调用写在最后疯狂创客圈 亿级流量 高并发IM 学习实战 写在前面 ​ 大家好,我是作者尼恩。目前和几个小伙伴一起,组织了一个高并发的实战...
  • 时至今日,用户期待的是可通过web访问快速、动态的应用。这一文章系列展示了如何使用反向Ajax(Reverse Ajax)技术来开发事件驱动的web应用。系列的第1部分介绍了反向Ajax、轮询(polling)、流(streaming)、Comet...
  • 反向Ajax,第3部分:Web服务器和Socket.IO 作者:Mathieu Carbou 译言 时间:2011-10-18 阅读:2319 次 原文链接 [收藏]  小提示:点击可切换浏览 摘要:英文原文:Reverse Ajax, Part 3: Web ...
  • 调用WCF服务并返回数据DataTable,WCF服务部署在本机IIS服务器,浏览器访问正常。 但是调用时,返回DataTable数据就报错:远程主机强迫关闭了一个现有的连接 远程主机强迫关闭了一个现有的连接。 说明: 执行...
1 2 3 4 5 ... 20
收藏数 69,650
精华内容 27,860
关键字:

webapi 无法连接到远程服务器