gpt4 book ai didi

c# - Unity3D 网站查找在 Unity3D 4.7.2 中返回 nil

转载 作者:行者123 更新时间:2023-11-30 20:26:08 25 4
gpt4 key购买 nike

这是我的代码。

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://itunes.apple.com/lookup?id=1218822890");
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;

using(HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using(Stream stream = response.GetResponseStream())
using(StreamReader reader = new StreamReader(stream))
{
string textRead = reader.ReadToEnd();

Debug.Log("\nData Read = "); Debug.Log(textRead);
}

我尝试从统一代码读取游戏的网站链接并读取应用程序价格。它返回零...调用有什么问题?

最佳答案

您的代码没有问题并且工作正常。它没有返回空值。您认为它返回空值是因为您收到的数据中包含 \n\n 使得 json 在下面的几行中开始。要实际查看数据,您必须在“控制台”选项卡中向下滚动一点或重新调整下方圆圈中水平线的大小。

enter image description here

尽管在 Unity 中使用 UnityWebRequest 更好,但是 HttpWebRequest 应该也可以。回答您的other问题,下载数据后,使用 JsonUtility.FromJson 将其反序列化为对象,然后您就可以访问价格。

下面是该函数在 C# 中的样子:

void Start()
{
StartCoroutine(CheckForPaidApp("http://itunes.apple.com/lookup?id=1218822890")); ;
}


IEnumerator CheckForPaidApp(string uri)
{
UnityWebRequest uwr = UnityWebRequest.Get(uri);
yield return uwr.SendWebRequest();

if (uwr.isHttpError || uwr.isNetworkError)
{
Debug.Log("Error While Sending: " + uwr.error);
}
else
{
string data = uwr.downloadHandler.text;
Debug.Log("Received: " + uwr.downloadHandler.text);

//Serialize to Json
RootObject jsonObj = JsonUtility.FromJson<RootObject>(data);
List<Result> resultObj = jsonObj.results;

//Loop over the result and show the price information
for (int i = 0; i < resultObj.Count; i++)
{
double price = resultObj[i].price;
Debug.Log("Price = \n" + price);

if (price > 0.0f)
{
Debug.Log("Its Paid App\n");
}
else
{
// show ads here
}
}
}
}

将 json 反序列化为的对象/类:

[Serializable]
public class Result
{
public List<string> screenshotUrls;
public List<string> ipadScreenshotUrls;
public List<object> appletvScreenshotUrls;
public string artworkUrl512;
public string artworkUrl60;
public string artworkUrl100;
public string artistViewUrl;
public List<string> supportedDevices;
public string kind;
public List<string> features;
public bool isGameCenterEnabled;
public List<object> advisories;
public string fileSizeBytes;
public List<string> languageCodesISO2A;
public string trackContentRating;
public string trackViewUrl;
public string contentAdvisoryRating;
public string trackCensoredName;
public List<string> genreIds;
public int trackId;
public string trackName;
public string primaryGenreName;
public int primaryGenreId;
public string currency;
public string wrapperType;
public string version;
public int artistId;
public string artistName;
public List<string> genres;
public double price;
public string description;
public string bundleId;
public string sellerName;
public bool isVppDeviceBasedLicensingEnabled;
public DateTime releaseDate;
public DateTime currentVersionReleaseDate;
public string minimumOsVersion;
public string formattedPrice;
}

[Serializable]
public class RootObject
{
public int resultCount;
public List<Result> results;
}

关于c# - Unity3D 网站查找在 Unity3D 4.7.2 中返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50408020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com