2016-02-29 45 views
0
public static String getJSONfromURL(String URL) { 

     try { 
      URL url = new URL("https://www.taxmann.com/TaxmannWhatsnewService/mobileservice.aspx?service=topstories"); 
      HttpsURLConnection connection = (HttpsURLConnection) url 
        .openConnection();   
      int code = connection.getResponseCode(); 
      connection.setReadTimeout(10000); 
      connection.setConnectTimeout(15000); 
      connection.setRequestMethod("GET"); 
      connection.setDoInput(true); 
      connection.setDoOutput(true); 
      Uri.Builder builder = new Uri.Builder(); 
      String query = builder.build().getEncodedQuery(); 
      OutputStream os = connection.getOutputStream(); 
      BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
        os, "UTF-8")); 
      writer.write(query); 
      writer.flush(); 
      writer.close(); 
      os.close(); 
      connection.connect(); 



      System.out.println(code); 

     } catch (MalformedURLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (ProtocolException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (UnsupportedEncodingException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     return ""; 

    } 

的ProtocolException连接这是我的代码我试图从服务器获取响应,但前来异常协议异常连接已经建立,我不知道为什么这个异常即将请修复这个例外,上午做错了如何解决已经建立的Android

+0

为什么在'os.close();'后有''connection.connect();''''connection.connect – Yazan

+0

好的,等一下。让我检查 –

回答

0

您需要在connection.connect()之后移动getResponseCode()。像这样:

   URL url = new URL("https://www.taxmann.com/TaxmannWhatsnewService/mobileservice.aspx"); //Remove Query Param from Url 
       HttpsURLConnection connection = (HttpsURLConnection) url 
         .openConnection();   
       // int code = connection.getResponseCode(); 
       connection.setReadTimeout(10000); 
       connection.setConnectTimeout(15000); 
       connection.setRequestMethod("GET"); 

        connection.setDoInput(true); 
        connection.setDoOutput(true); 
        Uri.Builder builder = new Uri.Builder(); 
        builder.appendQueryParameter("service", "topstories"); //Add this line 
        String query = builder.build().getEncodedQuery(); 
        OutputStream os = connection.getOutputStream(); 
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
          os, "UTF-8")); 
        writer.write(query); 
        writer.flush(); 
        writer.close(); 
        os.close(); 
        connection.connect(); 
        //Note that above line is irrelevant. See http://docs.oracle.com/javase/tutorial/networking/urls/connecting.html 
        int code = connection.getResponseCode();//move it here 
        System.out.println(code); 

        if (code == 200) { 
         StringBuilder content = new StringBuilder(); 
         BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
         String line; 
         while((line = bufferedReader.readLine()) != null) 
          content.append(line).append("\n"); 
         bufferedReader.close(); 
         System.out.println(content.toString()); 
        } 
+0

哪里我会得到内容作为回应 –

+0

它解决了你的问题吗? – User31689

+0

我无法获得内容 –

相关问题