Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从asp.net接收到php的JSON POST数据?_Php_Asp.net_Json_Rest_Api - Fatal编程技术网

如何从asp.net接收到php的JSON POST数据?

如何从asp.net接收到php的JSON POST数据?,php,asp.net,json,rest,api,Php,Asp.net,Json,Rest,Api,我正在尝试为我的php网站构建一个API,该API使用from asp.net站点向我的php MySql站点插入数据。我已经和邮递员核对过了,它正在工作。但是,当从asp.net访问时,它只获取空值。从asp.net使用JSON发布的数据是 JSONPOST来自asp.net的数组 string reqJson = "{\"user_id\":\"" + user_id + "\",\"name\":\"" + name + "\",\"branch\": " + branch + "

我正在尝试为我的php网站构建一个API,该API使用from asp.net站点向我的php MySql站点插入数据。我已经和邮递员核对过了,它正在工作。但是,当从asp.net访问时,它只获取空值。从asp.net使用JSON发布的数据是

JSONPOST来自asp.net的数组

    string reqJson = "{\"user_id\":\"" + user_id + "\",\"name\":\"" + name + "\",\"branch\": " + branch + "," + " \"agency\" : \"" + agency + "\"}";
var request = (HttpWebRequest)WebRequest.Create(Url);

                var data = Encoding.UTF8.GetBytes(reqJson);
                request.Method = "POST";
                request.ContentType = "application/json";
                request.ContentLength = data.Length;
                request.KeepAlive = true;
                request.Accept = "application/json";
                request.Headers.Add("Accept-Encoding", "application/gzip");


                Stream dataStream = request.GetRequestStream();
                dataStream.Write(data, 0, data.Length);
                dataStream.Close();

                HttpWebResponse webResponse = (HttpWebResponse)request.GetResponse();
                var rsp = webResponse.GetResponseStream();
                if (rsp == null)
                {

                }
                using (System.IO.StreamReader rdstrm = new System.IO.StreamReader(webResponse.GetResponseStream()))
                {
                    responseString = rdstrm.ReadToEnd().ToString();
                }
这是请求的JSON

{"AllowAutoRedirect":true,"AllowWriteStreamBuffering":true,"AllowReadStreamBuffering":false,"HaveResponse":false,"KeepAlive":true,"Pipelined":true,"PreAuthenticate":false,"UnsafeAuthenticatedConnectionSharing":false,"SendChunked":false,"AutomaticDecompression":0,"MaximumResponseHeadersLength":64,"ClientCertificates":[],"CookieContainer":null,"SupportsCookieContainer":true,"RequestUri":"http://localhost:9080/api/ucd.php","ContentLength":81,"Timeout":100000,"ReadWriteTimeout":300000,"ContinueTimeout":350,"Address":"http://localhost:9080/api/ucd.php","ContinueDelegate":null,"ServicePoint":{"BindIPEndPointDelegate":null,"ConnectionLeaseTimeout":-1,"Address":"http://localhost:9080/api/ucd.php","MaxIdleTime":100000,"UseNagleAlgorithm":true,"ReceiveBufferSize":-1,"Expect100Continue":true,"IdleSince":"\/Date(1542637743629)\/","ProtocolVersion":{"Major":1,"Minor":1,"Build":-1,"Revision":-1,"MajorRevision":-1,"MinorRevision":-1},"ConnectionName":"http","ConnectionLimit":2147483647,"CurrentConnections":0,"Certificate":null,"ClientCertificate":null,"SupportsPipelining":true},"Host":"localhost","MaximumAutomaticRedirections":50,"Method":"POST","Credentials":null,"UseDefaultCredentials":false,"ConnectionGroupName":null,"Headers":["Content-Type","Accept","Accept-Encoding"],"Proxy":{"Credentials":null},"ProtocolVersion":{"Major":1,"Minor":1,"Build":-1,"Revision":-1,"MajorRevision":-1,"MinorRevision":-1},"ContentType":"application/json","MediaType":null,"TransferEncoding":null,"Connection":null,"Accept":"application/json","Referer":null,"UserAgent":null,"Expect":null,"IfModifiedSince":"\/Date(-62135596800000)\/","Date":"\/Date(-62135596800000)\/","ServerCertificateValidationCallback":null,"CreatorInstance":{},"CachePolicy":{"Level":1},"AuthenticationLevel":1,"ImpersonationLevel":4}
上述内容是在发布JSON请求时自动生成的

接收的PHP代码为

 <?php

include_once('config.php');
if($_SERVER['REQUEST_METHOD'] == "POST"){


//Posting the data here
$user_id= $_POST['user_id'];
$user_name= $_POST['name'];
$branch= $_POST['branch'];
$agency= $_POST['agency'];



//This below method also tried but the same showing.
/*$portal = isset($_POST['portal']) ? mysqli_real_escape_string($_POST['portal']) : "";
$pax_name = isset($_POST['pax_name']) ? mysqli_real_escape_string($_POST['pax_name']) : "";
$ticket_no = isset($_POST['ticket_no']) ? mysqli_real_escape_string($_POST['ticket_no']) : "";
$adtorch = isset($_POST['adtorch']) ? mysqli_real_escape_string($_POST['adtorch']) : "";
$airline_code = isset($_POST['airline_code']) ? mysqli_real_escape_string($_POST['airline_code']) : "";*/


 // Insert data into data base
 $sql = "INSERT INTO portal_users (pu_user_id, pu_username, pu_branch, pu_agency) VALUES ('" .$user_id."','".$user_name."','".$branch."','".$agency."');";
 $qur = $conn->query($sql);
 if($qur){
 $json = array("status" => 1, "msg" => $user_id);
 }else{
 $json = array("status" => 0, "msg" => "Error adding user!");
 }
}else{
 $json = array("status" => 0, "msg" => "Request method not accepted");
}

mysqli_close($conn);

/* Output header */
 header('Content-type:  application/json');
 echo json_encode($json);
?>

您需要像这样接收json值-

$r_val = file_get_contents("php://input");
$r_data = json_decode($r_val, true);
这里$r_数据是一个数组。您将在此数组中获得预期值,如下所示-

$user_id= $r_data ['user_id'];
$user_name= $r_data ['name'];
$branch= $r_data ['branch'];
$agency= $r_data ['agency'];

您需要像这样接收json值-

$r_val = file_get_contents("php://input");
$r_data = json_decode($r_val, true);
这里$r_数据是一个数组。您将在此数组中获得预期值,如下所示-

$user_id= $r_data ['user_id'];
$user_name= $r_data ['name'];
$branch= $r_data ['branch'];
$agency= $r_data ['agency'];

要在php中接收json POST数据,我们应该使用以下代码

$postdata = file_get_contents("php://input"); //This will post JSON into $postdata as a JSON string
$postdataArray = json_decode($postdata, true); //This will convert JSON string into array
//Posting the data here
$user_id= $_POST['user_id'];
$user_name= $_POST['name'];
$branch= $_POST['branch'];
$agency= $_POST['agency'];
在您的情况下,请替换以下代码

$postdata = file_get_contents("php://input"); //This will post JSON into $postdata as a JSON string
$postdataArray = json_decode($postdata, true); //This will convert JSON string into array
//Posting the data here
$user_id= $_POST['user_id'];
$user_name= $_POST['name'];
$branch= $_POST['branch'];
$agency= $_POST['agency'];
使用此代码

$postdata = file_get_contents("php://input"); 
$postdataArray = json_decode($postdata, true);
$user_id= $postdataArray['user_id'];
$user_name= $postdataArray['name'];
$branch= $postdataArray['branch'];
$agency= $postdataArray['agency'];

要在php中接收json POST数据,我们应该使用以下代码

$postdata = file_get_contents("php://input"); //This will post JSON into $postdata as a JSON string
$postdataArray = json_decode($postdata, true); //This will convert JSON string into array
//Posting the data here
$user_id= $_POST['user_id'];
$user_name= $_POST['name'];
$branch= $_POST['branch'];
$agency= $_POST['agency'];
在您的情况下,请替换以下代码

$postdata = file_get_contents("php://input"); //This will post JSON into $postdata as a JSON string
$postdataArray = json_decode($postdata, true); //This will convert JSON string into array
//Posting the data here
$user_id= $_POST['user_id'];
$user_name= $_POST['name'];
$branch= $_POST['branch'];
$agency= $_POST['agency'];
使用此代码

$postdata = file_get_contents("php://input"); 
$postdataArray = json_decode($postdata, true);
$user_id= $postdataArray['user_id'];
$user_name= $postdataArray['name'];
$branch= $postdataArray['branch'];
$agency= $postdataArray['agency'];


当这样做时,它显示了一个错误,因为意外编辑来自asp.NET。代码似乎还可以。您应该逐行调试它,以准确地找出哪一行出现意外错误实际上发布的数据没有发布到页面上。这样做时,它显示了一个错误,因为意外编辑来自asp.NET。代码似乎没有问题。您应该逐行调试它,以确定哪一行出现了意外错误实际上发布的数据没有发布在页面上pitidar:我尝试过这种方法,然后它显示了意外错误。您可以粘贴错误消息吗?您正在将它从asp.net发布到PHP页面,对吗?这是我收到的错误消息。做两件事。去除从下一行
$sql=“插入门户用户(pu_用户id、pu_用户名、pu_分支机构、pu_机构)值(“$user_id.”、“$user_name.”、“$branch.”、“$agency.”)
updatecode
$sql=“插入门户用户(pu_用户id、pu_用户名、pu_分支机构、pu_机构)值(“$user_id.”、“$user_name.”、“$branch.”、“$agency.”)2。为了进行调试,请删除所有其他代码,只需打印$postdataArray并选中我们。Pitidar:我尝试了此方法,然后它显示了意外错误。您可以粘贴错误消息吗?您正在将它从asp.net发布到PHP页面,对吗?这是我收到的错误消息。做两件事。去除从下一行
$sql=“插入门户用户(pu_用户id、pu_用户名、pu_分支机构、pu_机构)值(“$user_id.”、“$user_name.”、“$branch.”、“$agency.”)
updatecode
$sql=“插入门户用户(pu_用户id、pu_用户名、pu_分支机构、pu_机构)值(“$user_id.”、“$user_name.”、“$branch.”、“$agency.”)2。为了进行调试,请删除所有其他代码,只需打印$postdataArray并选中我们。是否在.net webapi上设置了源标题?是否有人知道如何进行排序?回答以下问题question@Sujit.Warrier源标题?你是说这些。。?request.Method=“POST”;request.ContentType=“application/json”;request.ContentLength=data.Length;request.KeepAlive=true;request.Accept=“application/json”;添加(“接受编码”、“应用程序/gzip”);为什么要将数据作为json发送,而使用$\u POST时,什么使用了不同的编码系统?是否在.net webapi上设置了源标题?有人知道如何进行排序吗?回答以下问题question@Sujit.Warrier源标题?你是说这些。。?request.Method=“POST”;request.ContentType=“application/json”;request.ContentLength=data.Length;request.KeepAlive=true;request.Accept=“application/json”;添加(“接受编码”、“应用程序/gzip”);为什么要将数据作为json发送,而使用$\u POST,是什么使用了不同的编码系统