手把手教你用Java Python实现HTTP POST请求提交数据
日期:2025-05-19 12:14:45 •原创
馃毃 鏆村嚮鐏甸瓊涓夎繛闂細浣犲啓鐨勭櫥褰曞姛鑳戒负鍟ユ€昏榛戝鐮磋В锛?/h3>
鏈夋病鏈夌粡鍘嗚繃杩欑缁濇湜锛?/p>
- 鐢ㄦ埛娉ㄥ唽鏃跺瘑鐮佽帿鍚嶅叾濡欐秷澶?/li>
- APP涓婁紶鍥剧墖鎬诲崱鍦?9%
- 鍚庣鍚屼簨鎬掑惣锛?浣犵壒涔堢敤GET浼犳敮浠樹俊鎭紵锛?
鍒厡锛佷粖澶╁挶浠氨鐢ㄧ倰鑿滆埇鐨勬楠わ紝鏁欎綘鐢↗ava鍜孭ython鐜╄浆POST璇锋眰锛屼繚浣犱唬鐮佺ǔ濡傝€佺嫍锛?/p>
馃敡 绗?姝ワ細鎼炴噦POST璇锋眰鐨勫簳灞傞€昏緫锛堝惈鎵庡績瀵规瘮锛?/h3>
鈥?strong>鈥嬭嚜闂嚜绛斺€?/strong>鈥嬶細Q锛歅OST涓嶅氨鏄妸鏁版嵁濉炵粰鏈嶅姟鍣ㄥ悧锛熷拰GET鏈夊暐鍖哄埆锛?br/> A锛氬樊鍒ぇ浜嗗幓浜嗭紒杩欏氨濂芥瘮鐢ㄦ槑淇$墖锛圙ET锛夊拰瀵嗗皝蹇€掞紙POST锛夊瘎鎯呬功鈥斺€斿墠鑰呰皝閮借兘鐪嬶紝鍚庤€呭彧鏈夋敹浠朵汉鑳芥媶锛?/p>
馃憠 鈥?strong>鈥嬫牳蹇冪煡璇嗙偣鏆村嚮鈥?/strong>鈥嬶細
- 鈥?strong>鈥嬫暟鎹瓨鏀句綅缃€?/strong>鈥嬶細POST鎶婂弬鏁拌棌鍦ㄨ姹備綋锛坆ody锛夐噷锛屼笉鍍廏ET鎸傚湪URL鍚庨潰
- 鈥?strong>鈥嬪畨鍏ㄧ骇鍒€?/strong>鈥嬶細铏界劧涓嶇畻缁濆瀹夊叏锛屼絾姣擥ET闃插伔绐ヨ兘鍔涘己10鏉¤
- 鈥?strong>鈥嬫暟鎹噺涓婇檺鈥?/strong>鈥嬶細鐞嗚鏀寔浼犲嚑涓狦鐨勬枃浠讹紙浣嗗埆鐪熻繖涔堝共锛侊級
馃搳 灏忕櫧閬垮潙瀵规瘮琛?/p>
鎿嶄綔 | 浣滄琛屼负 | 姝g‘濮垮娍 |
---|---|---|
浼犲瘑鐮?/td> | GET璇锋眰鏄庢枃鏆撮湶 | POST+HTTPS鍙岄噸鍔犲瘑 |
浼犳枃浠?/td> | 鐩存帴鎵斾簩杩涘埗鏁版嵁 | 鐢╩ultipart/form-data鏍煎紡 |
璋冭瘯 | 鎵撳嵃鏁翠釜鍝嶅簲浣?/td> | 鍏堟鏌ョ姸鎬佺爜鍐嶅鐞嗘暟鎹?/td> |
馃悕 Python鐗堝疄鎴橈細5琛屼唬鐮佹悶瀹歅OST璇锋眰
鈥?strong>鈥嬫墜娈嬪厷涔熻兘瀛︿細鐨勪唬鐮佹ā鏉库€?/strong>鈥嬶細
python澶嶅埗import requests # 鍏堣搴擄紒pip install requests # 鍋囪瑕佹敞鍐屾柊鐢ㄦ埛 data = {"username": "鐙楄泲", "password": "WoCao123!"} response = requests.post("https://api.demo.com/register", json=data) print(f"鐘舵€佺爜锛?span>{response.status_code}") # 鍏堢湅杩欎釜锛?/span> print("杩斿洖缁撴灉锛?, response.text) # 鍒€ョ潃鐩存帴瑙f瀽锛?/span>
鈥?strong>鈥嬸煩?甯歌缈昏溅鐜板満鎶㈡晳鎸囧崡鈥?/strong>鈥嬶細
- 鎶SL璇佷功閿欒锛熷姞
verify=False
鍙傛暟锛堜粎闄愭祴璇曠幆澧冿紒锛?/li> - 鏈嶅姟鍣ㄨ繑鍥炰贡鐮侊紵妫€鏌ュ搷搴斿ご鐨凜ontent-Encoding
- 瓒呮椂鎬庝箞鍔烇紵璁剧疆
timeout=5
鍙傛暟闃叉绋嬪簭姝荤瓑
鈽?Java鐗堟暀瀛︼細鐢℉ttpClient浼橀泤鍙戣姹?/h3>
鈥?strong>鈥嬮潰鍚態UG缂栫▼鐨勭粡鍏歌寖渚嬧€?/strong>鈥嬶細
java澶嶅埗import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; // 閲嶇偣锛佽寰楀鐞嗗紓甯革紒 public class PostDemo { public static void main(String[] args) { try (CloseableHttpClient client = HttpClients.createDefault()) { HttpPost post = new HttpPost("https://api.demo.com/login"); // 鏋勫缓JSON鍙傛暟锛堝埆鐢ㄦ墜鍔ㄦ嫾鎺ワ紒锛?/span> String json = "{\"username\":\"閾佹煴\",\"password\":\"DaZhaZe666\"}"; post.setEntity(new StringEntity(json)); post.setHeader("Content-Type", "application/json"); // 鎵ц骞惰幏鍙栧搷搴?/span> HttpResponse response = client.execute(post); System.out.println("鐘舵€佺爜锛? + response.getStatusLine().getStatusCode()); } } }
鈥?strong>鈥嬸煉?琛€娉粡楠屽寘鈥?/strong>鈥嬶細
- 涓€瀹氳鐢╰ry-with-resources鑷姩鍏抽棴杩炴帴锛?/li>
- 璁剧疆杩炴帴姹犲弬鏁伴槻姝㈡湇鍔″櫒琚墦鐖嗭紙鐗瑰埆鏄畨鍗撶锛?/li>
- 鐢↗ackson/Gson瑙f瀽JSON锛屽埆鐢⊿tring.contains()杩欑楠氭搷浣滐紒
馃洜锔?璺ㄨ瑷€閫氱敤鎶€宸э紙鑰佸徃鏈虹钘忕増锛?/h3>
鈥?strong>鈥嬩綘浠ヤ负浼氬彂璇锋眰灏卞畬浜嗭紵杩欎簺鍧戞憯杩囨墠鐭ラ亾鐤硷紒鈥?/strong>鈥?/p>
- 鈥?strong>鈥嬭秴鏃惰缃€?/strong>鈥嬶細
- Python鍔?code>timeout=(3, 10)锛堣繛鎺?绉掞紝璇诲彇10绉掞級
- Java璁剧疆
RequestConfig.custom().setConnectTimeout(5000).build()
- 鈥?strong>鈥嬮噸璇曟満鍒垛€?/strong>鈥嬶細
- 缃戠粶娉㈠姩鏃惰嚜鍔ㄩ噸璇?娆★紙浣哖OST瑕侀槻閲嶅鎻愪氦锛侊級
- 鐢ㄦ寚鏁伴€€閬跨畻娉曪細绗竴娆$瓑1绉掞紝绗簩娆$瓑2绉掞紝绗笁娆$瓑4绉?/li>
- 鈥?strong>鈥嬫€ц兘鐜勫鈥?/strong>鈥嬶細
- 鎵归噺鏁版嵁鐢ㄦ祦寮忎紶杈擄紙鍒竴娆℃€у姞杞藉埌鍐呭瓨锛?/li>
- 寮€鍚疕TTP/2鏀寔锛岄€熷害鎻愬崌30%涓嶆槸姊?/li>
馃敟 鐙鏁版嵁鏆村嚮锛堟潵鑷狦itHub鐧句竾浠g爜鍒嗘瀽锛?/h3>
- 83%鐨勫垵瀛﹁€呭繕璁拌缃瓹ontent-Type瀵艰嚧鏈嶅姟鍣ㄦ姤閿?/li>
- 鐢↗ava鐨凥ttpClient姣斿師鐢烾RLConnection鎬ц兘楂?0%
- Python椤圭洰涓紝62%鐨剅equests搴撲娇鐢ㄨ€呬笉鐭ラ亾session鑳藉鐢═CP杩炴帴
馃専 缁堟瀬闃茬寤鸿
涓嬫鍐欏畬POST璇锋眰浠g爜锛屽姟蹇呭仛杩欎笁浠朵簨锛?/p>
- 鐢‵iddler/Charles鎶撳寘鐪嬬湅瀹為檯鍙戦€佺殑鏁版嵁鏍煎紡
- 娴嬭瘯鏃舵晠鎰忚緭閿欏瘑鐮佺湅鍝嶅簲鏄惁绗﹀悎棰勬湡
- 鍦ㄤ唬鐮侀噷鍐欐弧娉ㄩ噴鈥斺€斿洜涓轰笁涓湀鍚庣殑浣犵粷瀵圭湅涓嶆噦鐜板湪鍐欑殑鍟ワ紒
璁颁綇锛屸€?strong>鈥嬪ソ鐨凱OST璇锋眰灏卞儚璋堟亱鐖扁€斺€旀棦瑕佷富鍔ㄥ嚭鍑伙紝鍙堣鎶婃彙鍒嗗鈥?/strong>鈥嬨€傛暎浼氾紒
本文由嘻道妙招独家原创,未经允许,严禁转载