2017-04-07 14 views
-3

に送信する方法と、POST要求にJSON文字列を送信する際に問題が発生しました。POST要求の入力パラメータとしてjson文字列をandroid

これは私のURLです:http://172.25.183.183:8080/JIRAservice/rest/runquery

キー:クエリ

値:<projectkey>は共有設定に格納された値である

{ "jql": "project=<projectkey>", 
    "startAt": 0, 
    "maxResults": 100, 
    "fields": [ 
    "summary", 
    "customfield_10006", 
    "status", 
    "description" 
    ] 
} 

これは私のコードである

を助けてください

try{ 
      TextView op=(TextView) findViewById(R.id.resp); 
      URL url=new URL("http://172.25.183.183:8080/JIRAservice/rest/runquery"); 
      HttpsURLConnection conn=(HttpsURLConnection)url.openConnection(); 
      conn.setRequestMethod("POST"); 
      String projectKey=Home.savedid; 

      JSONObject jsonParam = new JSONObject(); 
    jsonParam.put("query", "    "{ \"jql\": \"project=" + projectKey + "\", \"startAt\": 0, \"maxResults\": 100, \"fields\": [\"summary\",\"customfield_10006\", \"status\", \"description\"] }""); 

how to send the parameters?? 


      conn.setDoOutput(true); 
      DataOutputStream dbstrm=new DataOutputStream(conn.getOutputStream()); 
      dbstrm.flush(); 
      dbstrm.close(); 

      int respnse=conn.getResponseCode(); 
      String output="Request URl"+url; 
      output+=System.getProperty("line.separator"); 
      output+=System.getProperty("line.separator")+"Response Code"+respnse; 
      BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream())); 
      String line= ""; 
      StringBuilder respop=new StringBuilder(); 
      while((line=br.readLine())!=null){ 
       respop.append(line); 
      } 
      br.close(); 
      output +=System.getProperty("line.separator")+respop.toString(); 
      op.setText(output); 


     }catch(MalformedURLException ae){ 
      ae.printStackTrace(); 
     }catch (IOException e){ 
      e.printStackTrace(); 
     } 
+0

コードのどの部分がすでに持っているのですか? – devnull69

+0

これはサーバー側のAPIに非常に依存します... jsonオブジェクトをビルドしてデータを投稿するための非同期タスクを実行できますが、それを行う方法は実際にサーバーに委ねられています –

+0

キーと値同時に送信する必要があります – Sireesha

答えて

0
try{ 

      URL url=new URL("http://172.25.183.183:8080/JIRAservice/rest/runquery"); 
      HttpURLConnection conn=(HttpURLConnection)url.openConnection(); 
      conn.setRequestMethod("POST"); 
      conn.setDoInput(true); 
      conn.setDoOutput(true); 
      String projectKey=Home.savedid; 
      List<NameValuePair> params = new ArrayList<NameValuePair>(); 
      params.add(new BasicNameValuePair("query"," { \"jql\": \"project=" + projectKey + "\", \"startAt\": 0, \"maxResults\": 100, \"fields\": [\"summary\",\"customfield_10006\", \"status\", \"description\"] }")); 
      OutputStream os = conn.getOutputStream(); 
      BufferedWriter writer = new BufferedWriter(
        new OutputStreamWriter(os, "UTF-8")); 
      writer.write(getQuery(params)); 
      writer.flush(); 
      writer.close(); 
      os.close(); 

      conn.connect(); 

      int respnse=conn.getResponseCode(); 
      String output="Request URl"+url; 
      output+=System.getProperty("line.separator"); 
      output+=System.getProperty("line.separator")+"Response Code"+respnse; 
      BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream())); 
      String line= ""; 
      StringBuilder respop=new StringBuilder(); 
      while((line=br.readLine())!=null){ 
       respop.append(line); 
      } 
      br.close(); 
      output +=System.getProperty("line.separator")+"IssueList from API"+respop.toString(); 
      System.out.println("IssueList"+ output); 
      String respfield=resp(respop.toString()); 
      System.out.println(" response"+ respfield); 




     }catch(MalformedURLException ae){ 
      ae.printStackTrace(); 
     }catch (IOException e){ 
      e.printStackTrace(); 
     } 

getQuery()メソッド

private String getQuery(List<NameValuePair> params) throws UnsupportedEncodingException 
    { 
     StringBuilder result = new StringBuilder(); 
     boolean first = true; 

     for (NameValuePair pair : params) 
     { 
      if (first) 
       first = false; 
      else 
       result.append("&"); 

      result.append(URLEncoder.encode(pair.getName(), "UTF-8")); 
      result.append("="); 
      result.append(URLEncoder.encode(pair.getValue(), "UTF-8")); 
     } 

     return result.toString(); 
    } 
関連する問題