PHP 中的 ASP.Net API 使用

Posted

技术标签:

【中文标题】PHP 中的 ASP.Net API 使用【英文标题】:ASP.Net API Consumption in PHP 【发布时间】:2016-04-18 05:16:05 【问题描述】:

各位专家,大家好, 因为我是 php 新手,但我在 ASP.Net 方面有很好的经验。我想将我用 PHP 开发的网站与我的 ASP.net 项目和 SQL Server 集成。为此,我开发了一个 API 并在 PHP 中调用它,这对我不起作用。请指导我在哪里失踪。 PHP源代码如下。

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, 'http://msplhe.ddns.net:1440/tracking/usercon/sms/89410032056412647926/31.49976>/74.36318/');
//curl_setopt ($ch, CURLOPT_URL, 'www.google.com.pk');
curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; CrOS x86_64 7520.63.0) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/47.0.2526.106 Safari/537.36');
    curl_setopt ($ch, CURLOPT_USERAGENT, 'cURL crawler');
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt ($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 2);
    $html = curl_exec($ch);
    echo $html;

当我在服务器上执行此操作时,它没有显示任何结果并且页面上没有错误。但是,当我评论我的 API 并取消评论 www.google.com.pk 时,它会在页面上显示谷歌搜索我。我被困在里面了。请帮我。 提前致谢。

【问题讨论】:

网址中有一个> - 这是一个简单的错字吗?如果 URL 中没有 >,页面将解析为 xml 文档 <string>Done</string> - 如果 URL 中包含 >,则会生成错误 感谢您及时回复。正如我在源代码中使用没有“>”但存在相同的情况。 【参考方案1】:

我认为问题在于 url 中的 > - 这导致了应用程序错误(您也可以更改错误页面)

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, 'http://msplhe.ddns.net:1440/tracking/usercon/sms/89410032056412647926/31.49976/74.36318/'); /* Remove ">" from url here */
curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; CrOS x86_64 7520.63.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36');
curl_setopt ($ch, CURLOPT_USERAGENT, 'cURL crawler');
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION,true);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt ($ch, CURLOPT_AUTOREFERER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 2);
$html = curl_exec($ch);
curl_close( $ch );/* don't forget to close curl */
echo $html;

output
------
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Done</string>

【讨论】:

感谢 RamRaider 的及时响应。正如我在源代码中使用没有“>”但存在相同的情况。 预期输出是多少?我看到一个只有一个元素的 xml 文档(如答案所示) - 期望看到什么?? Dafinatly,当您共享输出时,我希望在调用 API 后在屏幕上看到此输出。 schemas.microsoft.com/2003/10/Serialization/">Done</…> 这就是它所显示的 - 或者更确切地说,在网络浏览器中它只是显示“完成” - xml 元素标签没有显示在浏览器中,但它们就在那里! 非常棒的听证会,亲爱的先生,请分享您所做的源代码。

以上是关于PHP 中的 ASP.Net API 使用的主要内容,如果未能解决你的问题,请参考以下文章

Web API系列教程2.1 — ASP.NET Web API中的路由机制

ASP.NET 短信网关 API

使用 .NET 6 在 ASP.NET Core 中处理 API 调用中的空子类

Web 表单中的 ASP.NET Web Api

ASP.NET 5 中的 Web API 身份验证

Asp.Net Web API 2第十三课——ASP.NET Web API中的JSON和XML序列化