0

Machine Name を Java のカスタム変数として http リクエスト ヘッダーに追加したいと考えています。

これが私のコードです:

private void sendIssuesToWebService(Issue issue) {
        // TODO Auto-generated method stub

        System.out.println("\n\n");
        //LOG.info("Sending issue : "+issue.getKey());


        HttpURLConnection ycSend = null;
        BufferedReader in1 = null;
        JSONObject j = null ;
        try{

            URL urlSend = null;

            try{
                urlSend = new URL(targetURL+"Issue/ImportIssue");
            }
            catch (MalformedURLException e) {
                // TODO Auto-generated catch block

                LOG.severe(" URL Malformed Exception while authentication ");
                e.printStackTrace();
            }



            try{
                ycSend = (HttpURLConnection) urlSend.openConnection();
            }
            catch (IOException e) {
                // TODO Auto-generated catch block

                LOG.severe(" Error in Http URL Connection while authentication");
                e.printStackTrace();
            }


            ycSend.setDoOutput(true);

            ycSend.setRequestMethod("POST");
            ycSend.setRequestProperty("Content-Type", "application/json");


            try{

                OutputStreamWriter outSend = null;


                outSend = new OutputStreamWriter(ycSend.getOutputStream());
                outSend.write(IssueAndHistoryJsonStr);


                outSend.flush();

            }catch(Exception e)
            {
                LOG.severe("Cannot write output stream while sending issue ");

            }

            System.out.println( ycSend.getResponseCode()+"\n\n\n");

            if(ycSend.getResponseCode()!=200){

                in1 = new BufferedReader(new InputStreamReader(
                        ycSend.getErrorStream()));


                String inputLine;
                while ((inputLine = in1.readLine()) != null) 
                    inputResponse=inputResponse+inputLine;
                //System.out.println("$$$$$$$"+inputResponse);

                try{
                    j = new JSONObject(inputResponse);
                    LOG.info(j.get("errors").toString());
                }
                catch(Exception e){



                    String errorTitle = inputResponse.substring(inputResponse.indexOf("<title>")+7,inputResponse.indexOf("</title>"));

                    LOG.severe(errorTitle);



                }

                LOG.severe(" Error in Sending  an Issue to the web service and the issue key is  "+issue.getKey());
                //LOG.severe("Error is : "+j.get("errors"));
            }
            else
            {

                LOG.info("Issue "+issue.getKey()+" Sent successfully" );
                countIssues++;
                System.out.println("\n\n");
            }
            //LOG.info("Issue ***** " +issue.getKey()+ " sent with response : "+inputResponse);




        }

        catch(Exception e)
        {
            LOG.severe(" Error in Sending  an Issue to the web service and the issue key is  "+issue.getKey());
            //LOG.severe(yc.getResponseMessage());
            //LOG.severe("Error is : "+j.get("errors"));
            e.printStackTrace();
        }

    }
4

2 に答える 2

2

コンテンツ タイプに似た別の requestProperty を追加したいだけだと思います。

ycSend.setRequestProperty("Machine-Name", MachineName);
于 2012-07-31T13:40:34.673 に答える
-1

多分これが役立つでしょう。または、これを行うために Apache HTTPClientを見ることができます。

ホスト名を取得するには、次のことができます。

try {
    InetAddress addr = InetAddress.getLocalHost();

    // Get hostname
    String hostname = addr.getHostName();
} catch (UnknownHostException e) {
  //DO SOMETHING 
}
于 2012-07-31T13:41:52.957 に答える