2013-02-19 81 views
0

現在,我正在使用Httppost將一些參數以xml形式發佈到服務器。當帖子發生時,下載geotiff或.tif文件。我已經成功地將文檔發佈到服務器,併成功下載了該文件,只需將參數附加到url,但我似乎無法將這兩者結合起來。我必須使用post,因爲只使用URL會留下geotiff中的高程數據。Apache Httppost從服務器Java中檢索圖像

總之,我不確定如何同時發佈和檢索帖子的圖像。這是我迄今爲止......

// Get target URL 
     String strURL = POST; 

     // Get file to be posted 
     String strXMLFilename = XML_PATH; 
     File input = new File(strXMLFilename); 

     // Prepare HTTP post 
     HttpPost post = new HttpPost(strURL); 

     post.setEntity(new InputStreamEntity(
       new FileInputStream(input), input.length())); 

     // Specify content type and encoding 
     post.setHeader(
       "Content-type", "text/xml"); 

     // Get HTTP client 
     HttpClient httpclient = new DefaultHttpClient(); 

     //Locate file to store data in 
     FileEntity entity = new FileEntity(newTiffFile, ContentType.create("image/geotiff")); 

     post.setEntity(entity); 

     // Execute request 
     try { 
      System.out.println("Connecting to Metoc site...\n"); 

      HttpResponse result = httpclient.execute(post); 

我的印象是,該實體將包含結果圖像。任何幫助深表感謝!

+0

你正在調用'post.setEntity'兩次,第二次覆蓋第一次調用(我認爲)。你想發送兩個到服務器?下載通常意味着從服務器讀取響應。 – 2013-02-19 20:43:38

+0

嗯,實際上可能是問題的一部分,因爲我的代碼是從響應中讀取的,但也許問題出在實體中。我正在閱讀一些使我認爲該實體是我下載的文檔。它必須是添加到帖子中的內容。 – jhusk2 2013-02-19 22:23:10

+0

實體是請求的一部分,它是*發送* *到服務器。如果您想從服務器讀取數據,請從響應中讀取數據。 – 2013-02-20 08:25:25

回答

0

感謝您的幫助球員。該實體是發送到服務器的內容。我有代碼試圖從響應中讀取它,但它不起作用,因爲將實體設置爲一個文件實體搞砸了發佈請求。通過去除那部分,它的效果非常好!

相關問題