如何在协程中发出 GET 请求?

Posted

技术标签:

【中文标题】如何在协程中发出 GET 请求?【英文标题】:How do i make a GET request in a coroutine? 【发布时间】:2019-09-01 12:51:24 【问题描述】:

正在为 android 开发一个项目...我无法让服务器接收到请求...我尝试了 TcpSocket、TcpClient、WebClient 等。但是不,Unity 似乎停留在 2008 年的 Mono (2.0.5.0) 上。

我什至无法引用 UnityWebRequest...

如何使用协程发出 GET 请求?

【问题讨论】:

I can't even reference UnityWebRequest 为什么不呢? 它没有在网络命名空间中定义,所以我猜它是引擎的旧版本 【参考方案1】:

缺乏基本的 dotnet api 使这成为一项非常烦人的任务。万维网来救援!

public static IEnumerator downloadString(string apiUrl, Callback<WWW> callBack)
    WWW i = new WWW(apiUrl);
    while (!i.isDone) yield return i;
    callBack(w);        
    yield break;

用法:

someObject.StartCoroutine(downloadString("http://192.168.1.5/x.php", (w)=>
     DBG.Log(w.text); // do something
));

【讨论】:

WWW 已过时,但您应该使用 UnityWebRequest.Get 看来我正在使用的项目是为旧版本的统一构建的......

以上是关于如何在协程中发出 GET 请求?的主要内容,如果未能解决你的问题,请参考以下文章

如何在协程中使用缓动来更改浮点值?

在协程中使用全局状态变量?

Python协程中的并行异步IO

Python协程深入理解(转)

Kotlin 协程协程的挂起和恢复 ② ( 协程挂起 和 线程阻塞 对比 )

Kotlin 协程协程的挂起和恢复 ② ( 协程挂起 和 线程阻塞 对比 )