首页 > 解决方案 > 统一没有收到数据响应 - 获取请求标头问题

问题描述

这是摘录的PHP代码:

// required headers
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");


$database   = new Database();
$db         = $database->GetConnection();

$correction = new Correction($db);

$statement  = $correction->Read();
$num        = $statement->rowCount();

if($num > 0){
    $correctionArray = array();
    $correctionArray["records"] = array();

    while($row = $statement->fetch(PDO::FETCH_ASSOC)){

        extract($row);

        $correctionItem = array(
            "correctionDetailId"        => $correction_detail_id,
            "correctionByName"          => $correction_by_name
         );

        array_push($correctionArray["records"], $correctionItem);

     }


    echo json_encode($correctionArray);
}
else{

    echo json_encode(array("message" => "No Correction found."));
}

现在我通过 C# 代码请求这个但没有得到数据:

using (UnityWebRequest www = UnityWebRequest.Get(url))
        {

            www.SetRequestHeader("Content-Type", "application/json; charset=UTF-8");


             yield return www.Send();

            if (www.isError)
            {
                Debug.Log(www.error);
                Debug.Log(www.responseCode);
            }
            else
            {
                // Show results as text
                Debug.Log(www.downloadHandler.text);


                // Or retrieve results as binary data
                byte[] results = www.downloadHandler.data;
            }
        }

我需要在标题中设置其他内容吗?我在邮递员中运行 API,它工作正常。

标签: c#php

解决方案


您应该将 User-Agent 添加到标题中,如下所示:

www.SetRequestHeader("User-Agent", "Mozilla / 5.0(Windows NT 10.0; WOW64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 55.0.2883.87 Safari / 537.36");

并且还要改变:

www.Send() to www.SendWebRequest()

推荐阅读