คำถามติดแท็ก apache-commons-httpclient

10
Java HttpClient ที่เลิกใช้แล้ว - มันยากขนาดไหน?
สิ่งที่ฉันพยายามจะทำก็คือดาวน์โหลด JSON และเลิกทำมันลงในวัตถุ ฉันยังไม่ได้ดาวน์โหลด JSON เท่าที่ควร เกือบทุกตัวอย่าง HttpClient เดียวที่ฉันสามารถหาได้รวมถึงสิ่งที่อยู่ในไซต์ apache ดูเหมือนว่า ... import org.apache.http.client.HttpClient; import org.apache.http.impl.client.DefaultHttpClient; public void blah() { HttpClient client = new DefaultHttpClient(); ... } อย่างไรก็ตาม Netbeans บอกฉันว่าDefaultHttpClientเลิกใช้แล้ว ฉันลองใช้ Google DefaultHttpClient deprecatedและรูปแบบอื่น ๆ มากมายเท่าที่ฉันจะนึกออกและไม่สามารถหาผลลัพธ์ที่เป็นประโยชน์ได้ฉันจึงขาดอะไรบางอย่างไป วิธีที่ถูกต้องของ Java7 ในการดาวน์โหลดเนื้อหาของหน้าเว็บคืออะไร? Http Client นั้นไม่มีภาษาที่ดีเลยใช่ไหม ฉันพบว่ามันยากที่จะเชื่อ การพึ่งพา Maven ของฉันสำหรับสิ่งนี้คือ ... <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> …

30
ปิดใช้งานการบันทึก HttpClient
ฉันใช้ commons-httpclient 3.1 ในชุดทดสอบการรวม การบันทึกเริ่มต้นสำหรับ HttpClient มีเสียงดังมากและดูเหมือนว่าฉันจะปิดไม่ได้ ฉันได้ลองทำตามคำแนะนำที่นี่แล้วแต่ก็ไม่มีข้อแตกต่างใด ๆ ส่วนใหญ่ฉันแค่ต้องทำให้ org.apache.http.wire logger ปิด ปัญหาส่วนหนึ่งคือฉันไม่รู้ว่า HttpClient กำลังพยายามใช้ตัวบันทึกประเภทใดและปัญหาส่วนใหญ่คือฉันไม่เคยใช้ไลบรารีนี้มาก่อน ฉันลองสร้างไฟล์ log4j.properties และวางลงในโฟลเดอร์ test / resources ของฉันแก้ไขไฟล์ master logging.properties ใน jre / lib และส่งอ็อพชันการบันทึกต่างๆไปยัง Maven ตามที่ระบุไว้ในเพจการบันทึกและไม่มีเลย สร้างความแตกต่าง ขอความช่วยเหลือใด ๆ ... นี่ทำให้ฉันรู้สึกแย่ UPDATE:การแก้ไข: ดูเหมือนว่าผลลัพธ์ที่เป็นปัญหานั้นมาจากการใช้งาน HttpClient ของ jwebunit ไม่ใช่ของฉันเอง ยังไงก็ไม่ถูกใจ อัปเดต:ขอบคุณสำหรับความพยายามที่ผ่านมา ฉันลองทุกอย่างที่แนะนำด้านล่างแล้ว แต่ยังไม่มีโชค ฉันมีไฟล์ commons-logging.properties ในโฟลเดอร์ …

3
วิธีการโพสต์คำขอ JSON โดยใช้ Apache HttpClient
ฉันมีสิ่งต่อไปนี้: final String url = "http://example.com"; final HttpClient httpClient = new HttpClient(); final PostMethod postMethod = new PostMethod(url); postMethod.addRequestHeader("Content-Type", "application/json"); postMethod.addParameters(new NameValuePair[]{ new NameValuePair("name", "value) }); httpClient.executeMethod(httpMethod); postMethod.getResponseBodyAsStream(); postMethod.releaseConnection(); มันกลับมาเรื่อย ๆ พร้อมกับ 500 ผู้ให้บริการบอกว่าฉันต้องส่ง JSON วิธีทำกับ Apache HttpClient 3.1+

5
แนวทางปฏิบัติที่ดีที่สุดในการใช้ HttpClient ในสภาพแวดล้อมแบบมัลติเธรด
ในขณะที่ฉันใช้ HttpClient ในสภาพแวดล้อมแบบมัลติเธรด สำหรับทุกเธรดเมื่อเริ่มต้นการเชื่อมต่อเธรดจะสร้างอินสแตนซ์ HttpClient ใหม่ทั้งหมด เมื่อเร็ว ๆ นี้ฉันได้ค้นพบว่าการใช้วิธีนี้อาจทำให้ผู้ใช้เปิดพอร์ตมากเกินไปและการเชื่อมต่อส่วนใหญ่อยู่ในสถานะ TIME_WAIT http://www.opensubscriber.com/message/commons-httpclient-dev@jakarta.apache.org/86045.html ดังนั้นแทนที่จะทำแต่ละเธรด: HttpClient c = new HttpClient(); try { c.executeMethod(method); } catch(...) { } finally { method.releaseConnection(); } เราวางแผนที่จะมี: [วิธีการ A] // global_c is initialized once through // HttpClient global_c = new HttpClient(new MultiThreadedHttpConnectionManager()); try { global_c.executeMethod(method); } catch(...) { …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.