无法在php$_GET中传递多个参数

本文关键字:参数 GET php | 更新日期: 2023-09-27 18:21:32

我有以下php代码,它充当我的http服务器的代理

slaveRef.php

<?php
    $url = 'http://xyzdei/IPDWSRest/Service1.svc/getServerUtil';
    $callback = $_GET["callback"];
    echo($callback . "(");
    header('Content-Type: application/json; charset=utf8');
    echo(file_get_contents($url . '/' . $_GET["poolingServer"], $_GET["serverPID"]));
    echo (")");
    ?>

IIS上托管的Web服务具有以下合同

   [OperationContract]
        [FaultContract(typeof(ExceptionOnIPDWS))]
        [WebInvoke(BodyStyle = WebMessageBodyStyle.WrappedRequest, UriTemplate = "getServerUtil/{poolingServer}&{serverPID}", ResponseFormat = WebMessageFormat.Json, Method = "GET")]
        //Status getServerUtil(string poolingServer,string serverPID, ref string oCreateResult); 
        string getServerUtil(string poolingServer, string serverPID); 

在浏览器中,我试图将uri称为

http://:1136/slavePerf.php?poolingServer=thunderw7dei&服务器PID=23456

但是,请求失败,并显示以下消息

>

 Notice: Undefined index: callback in C:'Users'xom'Documents'My Web
> Sites'EmptySite2'slavePerf.php on line 4  ( Warning:
> file_get_contents(http://xomw764dei/IPDWSRest/Service1.svc/getServerUtil/thunderw7dei):
> failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in
> C:'Users'xom'Documents'My Web Sites'EmptySite2'slavePerf.php on line 8
> )

我认为我没有正确传递参数

无法在php$_GET中传递多个参数

您没有设置名为"callback"的参数,因此它不会在$_GET变量中设置。

您可以通过以下操作修复错误消息:

$callback = "";
if(array_key_exists('callback', $_GET) == TRUE){
    $callback = $_GET['callback'];
}

并添加一个'&'在url中:

echo(file_get_contents($url . '/' . $_GET["poolingServer"] . '&' . $_GET["serverPID"]))

当我为file_get_contents 修改php文件时,问题得到了解决

echo(file_get_contents($url . '/' . $_GET["poolingServer"]));

和我的uriTemplate到

[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "getServerUtil/{poolingServer}/{serverPID}", ResponseFormat = WebMessageFormat.Json, Method = "GET")]