我一直在試圖開發一個桌面Java應用程序,它可以將本地硬盤上的圖像上傳到我的網站,並獲取在PHP中爲該圖像動態創建的頁面的URL。我遇到了可以發送POST請求的HttpClient,但有很多不贊成使用的類,並且我還沒有看到除了HTTP狀態碼之外如何從服務器獲取一些信息。我不熟悉並且真想避免的第二種方法是在JAVA中重建服務器端。Java HTTP文件上傳和服務器響應
這將是通過上傳表單(這是在PHP中處理)上傳文件並獲取像JAVA應用程序的圖像的新URL的一些信息最簡單的解決方案?
我一直在試圖開發一個桌面Java應用程序,它可以將本地硬盤上的圖像上傳到我的網站,並獲取在PHP中爲該圖像動態創建的頁面的URL。我遇到了可以發送POST請求的HttpClient,但有很多不贊成使用的類,並且我還沒有看到除了HTTP狀態碼之外如何從服務器獲取一些信息。我不熟悉並且真想避免的第二種方法是在JAVA中重建服務器端。Java HTTP文件上傳和服務器響應
這將是通過上傳表單(這是在PHP中處理)上傳文件並獲取像JAVA應用程序的圖像的新URL的一些信息最簡單的解決方案?
您可以閱讀POST請求的響應很容易(假設你已經上傳的文件,以在後的服務器 - 如果查不出來How to upload a file using Java HttpClient library working with PHP,但我複製這裏的關鍵線):
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
File file = new File("c:/TRASH/zaba_1.jpg");
FileEntity reqEntity = new FileEntity(file, "binary/octet-stream");
reqEntity.setContentType("binary/octet-stream");
post.setEntity(reqEntity);
HttpResponse response = httpclient.execute(post);
HttpEntity entity = response.getEntity();
Log.d("INFO", "rcode:" + response.getStatusLine().toString());
if (response.getStatusLine().getStatusCode() - 200 >= 100)
throw new Exception("bad status code: " + response.getStatusLine().getStatusCode());
String responseString = EntityUtils.toString(entity);
哦,順便說一句,這是使用
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
您能否詳細解釋一下dict中存儲的內容? – user2035457
在你的情況下,你應該已經在POST上傳了一張圖片,所以所有的東西都到'HttpResponse response = httpclient.execute(post);'你應該已經擁有了。之後,您可以使用我的代碼讀取服務器發送的響應,以解析返回的網址。 – Aaron
我添加了一些與上傳文件和鏈接相關的代碼 – Aaron
事實上,也沒有使用在服務器一側TECNOLOGY,所以你將交換字節事項。您可以在客戶端使用Retrofit輕鬆地將文件發送到服務器。 –
它看起來像一個簡單的庫。是否有任何關於從服務器獲得響應的詳細文檔,如上傳圖片的URL等 – user2035457