我正在尝试编写客户端代码以在另一个不包含公共IP地址的内部服务器上访问休息服务。因此,我正在尝试编写一个小型Web服务来获取所需的ID,并从Web服务器中获取其余服务。
我创建了一个Web服务,如下所示,从Web服务器点击其余服务,虽然我成功了,客户端
<System.Web.Services.Webmethod()> _
Public Shared Function GetService(ByVal id as Integer) as String
dim serviceUrl as string = "http://192.168.0.87/rest/services/"
dim httpWebRequest as System.Net.HttpWebRequest = System.Net.WebRequest.Create(serviceUrl)
httpWebRequest.ContentType = "text/json"
httpWebRequest.Method = "GET"
dim httpResponse as System.Net.HttpWebResponse = httpWebRequest.GetResponse()
Using streamReader as new System.IO.StreamReader(httpResponse.GetResponseStream())
Return streamReader.ReadToEnd()
End Using
End Function
虽然这对于一个呼叫正常工作,但同一个呼叫的结果会引用URL以进行进一步的服务呼叫,例如获取图像等。
是否有任何.Net应用程序,或任何解决方案,用外部IP地址和特定路径编写服务,并自动将地址服务器端重定向到内部IP地址的休息呼叫。
例如,如果客户端点击203.141.86.2/rest/services
,它将通过中间人服务自动转换为192.168.082/rest/services
的内部IP地址。
例如203.141.86.2/rest/services实际上是一个真正的地址,它只会翻译它之后的所有内容并将其放入新地址。 注意:现有的解决方案是用Web表单而不是MVC编写的,所以我不确定是否需要设置一个新的单个IIS应用程序来将这些调用转换作为webapi来处理。
它基本上就像NAT服务。
有没有人有任何解决方案?提前谢谢。