2017-01-10 16 views
-1

POSTコマンドを使用してWebサービスからデータを取得しようとしています。しかし、私はこの奇妙なことに固執している:私のコードは特定の時点の後に実行されないと私は本当に理由を知らない。私はそれをチェックするためにブレークポイントとLog.d()を使用しました。このラインgetOutputStreamの後にコードが実行されない - Android

OutputStream out = urlConnection.getOutputStream(); 

何も後

private void getResponse(String code) 
    { 
     String strurl = "http://example.com/api/something.json"; 
     String Token = app.Settings.UserToken; 
     String myid= app.ID.toString(); 



     try { 
      URL url = new URL(strurl); 
      HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 

      urlConnection.setDoOutput(true); 
      urlConnection.setConnectTimeout(5000); 
      urlConnection.setRequestMethod("POST"); 
      urlConnection.setRequestProperty("Content-Type", "text/plain"); 
      OutputStream out = urlConnection.getOutputStream(); 

      String outstr = "{\"response\": {"; 
      outstr += "\"token\":\"" + Token + "\","; 
      outstr += "\"myid\":\"" + myid+ "\","; 
      outstr += "\"code\":\"" + code + "\","; 
      outstr += "}}"; 

      out.write(outstr.getBytes()); 

      int respCode = urlConnection.getResponseCode(); 

      if (respCode == 200) { 

       Gson gson = new GsonBuilder() 
         .registerTypeAdapter(Boolean.class, new BooleanTypeAdapter()) 
         .create(); 

       InputStream in = urlConnection.getInputStream(); 
       JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8")); 


       reader.beginObject(); 
       while (reader.hasNext()) { 
        String token = reader.nextName(); 

        if (token.equals("name")) { 

        } 

       } 
       reader.endObject(); 

       reader.close(); 
      } else { 
       return; 
      } 
      urlConnection.disconnect(); 


      return; 

     } catch (Exception e) { 
      e.printStackTrace(); 
      return; 
     } finally { 

     } 
    } 

が実行されます。どんな考え?

答えて

0

問題がどこにあったのですか。 AsyncTaskの内部で関数を実行しなかったので、ネットワークのメインスレッドの例外を取得していました。

0

ファイルディスクリプタにメッセージを送信するための書き込み後の単純なフラッシュ。

out.flush(); 
関連する問題