首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一应用程序没有响应,并在调用WebAPI时获得“请求超时”

统一应用程序没有响应,并在调用WebAPI时获得“请求超时”
EN

Stack Overflow用户
提问于 2015-05-29 14:45:20
回答 1查看 637关注 0票数 0

我有一个对DLL中的Like()方法的Unity调用,该方法连接到一个WebAPI来完成这项工作。但是,当我调试应用程序和运行到

代码语言:javascript
复制
string liked = SocialConnector.LikePost(token, postID);

它被卡在那里,统一变得没有响应,在正常工作之后,调试显示请求超时。

下面是我在DLL中的详细代码

代码语言:javascript
复制
public static String LikePost(String token, String postID)
    {
        HttpCommon common = new HttpCommon();
        string url = Constant.ApiURL + Constant.API_LINK_POST_LIKE_UNLIKE + "?postID=" + postID;
        String result = common.HttpPost<String>(url, token);
        return result;
    }

HTTPCommon中的代码

代码语言:javascript
复制
public T HttpPost<T>(String url, String token)
    {
        var request = (HttpWebRequest)WebRequest.Create(url);

        //var data = Encoding.ASCII.GetBytes(postData);
        request.Method = "POST";
        request.ContentType = "application/x-www-form-urlencoded";
        //request.ContentLength = data.Length;
        request.Headers["Authorization"] = "Bearer " + token;
        var stream = request.GetRequestStream();
        var response = (HttpWebResponse)request.GetResponse();
        var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
        try
        {                
            var responseData = JsonConvert.DeserializeObject<T>(responseString);
            return responseData;
        }
        catch (Exception e)
        {
            throw new Exception(responseString);
        }
    }

错误日志:

代码语言:javascript
复制
WebException: The request timed out
System.Net.HttpWebRequest.EndGetResponse (IAsyncResult asyncResult)
System.Net.HttpWebRequest.GetResponse ()
GSEP_DLL.Connectors.HttpCommon.HttpPost[String] (System.String url,      System.String token)
GSEP_DLL.Connectors.SocialConnector.LikePost (System.String token,   System.String postID)
Like.onClick () (at Assets/Scripts/Like.cs:39)
UnityEngine.Events.InvokableCall.Invoke (System.Object[] args) (at    C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:110)
UnityEngine.Events.InvokableCallList.Invoke (System.Object[] parameters) (at    C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:574)
UnityEngine.Events.UnityEventBase.Invoke (System.Object[] parameters) (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:716)
UnityEngine.Events.UnityEvent.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_0.cs:53)
UnityEngine.UI.Button.Press () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:35)
UnityEngine.UI.Button.OnPointerClick    (UnityEngine.EventSystems.PointerEventData eventData) (at  C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:44)
UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler     handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:52)
UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler]   (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:269)
UnityEngine.EventSystems.EventSystem:Update()

更新:问题解决了。WebAPI返回类型的bool,但我的DLL强制返回字符串。

EN

回答 1

Stack Overflow用户

发布于 2015-05-29 15:10:04

问题解决了。WebAPI返回类型的bool,但我的DLL强制返回字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30532558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档