2017-08-29 81 views
2

有谁知道我可以通过android进行同步调用吗?我基本上不想再继续下去,直到我从服务器得到y/n的响应。通过Android/Java的同步API调用

这是代码的最简单的版本,我有

URL url = new URL("http://google.com"); 
HttpURLConnection connection = (HttpURLConnection) 
url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.connect(); 
int code = connection.getResponseCode(); 

但因为它是在主线程创建它给了我这个错误。

NetworkOnMainThreadException 

任何帮助是极大的赞赏,感谢

+0

你不能阻止主线程。 –

+0

建议:你可以使用Asyntask显示进度条,直到你得到响应。基于响应你可以处理你想要在onPostExecute https://developer.android.com/reference/android/os/AsyncTask.html – Raghavendra

+0

中做什么我同意,重复的问题...没有一个真正的答案。 – GhostCat

回答

3

基本上可以做HTTP上MainThread调用。

有许多变通的方式创建喜欢的可运行线程或的AsyncTask等试试下面的代码片段:

new Thread(new Runnable() 
    { 
     public void run() 
     { 
      try 
      { 
       //your HTTP request code..  
      } 
      catch (IOException e) 
      { 
       //Handle exceptions 
       e.printStackTrace(); 
      } 
     } 
    }).start(); 

进一步的阅读多线程看到Android开发者documentation

+0

@GhostCat我没有完全明白你的意思。这段代码将成为OP应该处理的OP.Rest事情的指南。它只是一个提示或参考 – Akshay

+0

从我读的内容来看,我被迫创建了一个线程。那么@akshay响应有什么问题?你提供的答案是土耳其语,我不会说火鸡,很好,通常不是。 – flashc5

+2

现在好多了。我采取了自由,稍微更新了答案。并且:考虑删除不再需要的评论。如果你想说谢谢,我想你知道在哪里可以找到我的答案或问题;-) – GhostCat