PHP POST请求相当于javascript请求
我正在尝试编写一个简单的PHP插件,它将从服务器获取数据并向用户显示它们 我已经用下面的javascript代码访问了服务器。然而,当我尝试使用PHP做同样的事情时(这一直是我的目标),我只得到一个超时或一个错误 你能指出我的PHP代码与javascript代码的区别/错误吗 工作示例:PHP POST请求相当于javascript请求,javascript,php,Javascript,Php,我正在尝试编写一个简单的PHP插件,它将从服务器获取数据并向用户显示它们 我已经用下面的javascript代码访问了服务器。然而,当我尝试使用PHP做同样的事情时(这一直是我的目标),我只得到一个超时或一个错误 你能指出我的PHP代码与javascript代码的区别/错误吗 工作示例: function myFunction() { $.ajax({ url: 'URL', headers: { 'Authorization':'KEY',
function myFunction() {
$.ajax({
url: 'URL',
headers: {
'Authorization':'KEY',
'PortalAuthorization':'KEY',
'Content-Type':'application/json'
},
method: 'POST',
dataType: 'json',
data: JSON.stringify({"ServerName":"MAIN","List":null}),
error: function(xhr, error){
console.debug(xhr);
console.debug(error);
},
success: function(data) {
console.log(data);
}
});
}
A默认的PHP等效项:
<?php
function prepare_headers($headers) {
return
implode('', array_map(function($key, $value) {
return "$key: $value\r\n";
}, array_keys($headers), array_values($headers))
);
}
//json parsing
$son->ServerName = "MAIN";
$son->List = "null";
$JS = json_encode($son);
$len = strlen($JS);
$headers = array('Authorization'=>"KEY",
'PortalAuthorization'=>"KEY",
'Content-Type' => "application/json", 'Content-Length' => $len
);
$oo = prepare_headers($headers);
$url = urldecode('URL');
$context = stream_context_create(array( 'http' => array(
'method'=>"POST",
'header'=> $oo,
'Content' => $JS
)));
$result = file_get_contents($url,false,$context);
?>
这将导致警告:无法打开流:HTTP请求失败!以及随后的致命错误:由于行$result=file\u get\u contents($url,false,$context)导致超过30秒的最大执行时间代码>
我还尝试只执行'header'=>$headers
,但这导致了另一个错误:无法打开流:HTTP请求失败!HTTP/1.1 411$result=file\u get\u contents($url,false,$context)中需要的长度代码>再次
我不熟悉PHP,因此希望您能提供帮助。$url=urldecode('url')???你真的想要字符串“URL”吗?不管'URL'
是什么,运行php的主机都无法访问它。@Roemer URL只是一个占位符,在代码本身中,我用工作值替换了URL和键。Top。不管怎样,只要跳过urldecode,可能与此有关。你不知道;“我不想解码一个要用作URL的URL。@YvesLeBorg我正在使用XAMPP在本地主机上测试它。”。