【发布时间】:2017-01-17 12:59:59
【问题描述】:
我有一个测试 API(get 方法),我已经在生产环境中部署了测试数据。
如果我从任何地方直接从 Browser 调用此 API,它就可以完美运行。 我创建了一个 Web 应用程序,只需一个提交单击按钮,即可调用该 API。我在 Azure 上部署了 Web 应用程序。
它不起作用。它不断给我操作超时异常。 API没有受到打击。 API 获取请求从浏览器工作。我尝试在api中使用记录器,日志文件仍然空白。
请任何人帮助我吗?
编辑:
当我通过浏览器调用时,我得到以下响应
此 XML 文件似乎没有任何关联的样式信息。文档树如下所示。
<ArrayOfMessage xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ValidationWebApi">
<Message>
<MessageDesc>
[{"NO":"111","NAME":"Miss Jane ","EXTENSION":"","MOBILE":"","EMAIL_ID":SOME EMAIL ID}]
</MessageDesc>
<MessageId i:nil="true"/>
<WebApiInfo i:nil="true"/>
<isValid>1</isValid>
</Message>
</ArrayOfMessage>
但如果我通过 Azure 托管站点调用,我会收到以下错误...
`System.Net.WebException:操作已在 System.Net.WebClient.DownloadString(Uri 地址)在 System.Net.WebClient.DownloadString 的 System.Net.WebClient.DownloadDataInternal(Uri 地址,WebRequest& 请求)处超时(字符串地址)在 Test.btnSubmit_Click(Object sender, EventArgs e)
编辑:
这个被调用来检查它是否被击中的方法如下 这是按钮单击事件。我们只是想在屏幕上打印这个响应。使用Get方法。
string strApi = "https://domain.com/myApiName/Jane";
try
{
using (var client = new WebClient())
{
var result = client.DownloadString(strApi);
Response.Write(result);
}
}
我在 var 结果语句中遇到异常。它在那里等待一段时间并给出异常。
问候, 阿夏
【问题讨论】:
-
请添加有关如何从 Web 应用程序调用 API 的代码。
-
为 strApi 设置的相同 URL 在浏览器中有效?
-
是的。如果我将该 URL 放在浏览器中,我会得到适当的结果。
-
它是否在本地工作,即如果你将它指向本地 webAPI 而不是 Azure 中托管的那个?您的生产服务器也可以通过互联网访问吗?
-
您能否从尝试调用托管 API 的 Azure 机器进行任何出站调用?
标签: asp.net-mvc azure web-api-testing