httpclient如何带上参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了httpclient如何带上参数相关的知识,希望对你有一定的参考价值。
参考技术A public static String getMimeType(String fileUrl) throws java.io.IOExceptionFileNameMap fileNameMap = URLConnection.getFileNameMap();
String type = fileNameMap.getContentTypeFor(fileUrl);
return type;
// 上传带附件的参数:
public static String uploadFile(String filePath, String id, int bid)
File file = new File(
"D:\\workspace\\NewsRobot\\download\\laddyphoto\\37294_236809_702347.jpg");
if (!file.exists())
return "文件不存在!";
String url = "http://www.chahushequ.com/post.bbscs";
PostMethod filePost = new PostMethod(url);
//仅设置User-Agent就行,不用设置Content-Type,设置了Content-Type有可能导致上传不成功
filePost .setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20100101 Firefox/8.0");
// set cookie
if (_cookies != null)
filePost.setRequestHeader("Cookie", _cookies);
try
// FilePart:用来上传文件的类
FilePart fp = new FilePart("headImageFile", file); // Part:类专门用来上传文件,其子类
// ,FilePart:用来上传文件的类
// StringPart:普通的文本参数
System.out.println("---" + fp);
fp.setContentType(getMimeType(filePath));
// StringPart:普通的文本参数
StringPart idPart = new StringPart("id", "");
StringPart bidPart = new StringPart("bid", String.valueOf(bid));
StringPart action = new StringPart("action", "upfiledo");
Part[] parts = idPart, bidPart, action, fp ;
// 对于MIME类型的请求,httpclient建议全用MulitPartRequestEntity进行包装
MultipartRequestEntity mre = new MultipartRequestEntity(parts,
filePost.getParams());
filePost.setRequestEntity(mre);
HttpClient client = new HttpClient();
client.getHttpConnectionManager().getParams().setConnectionTimeout(
50000);// 设置连接时间
int status = client.executeMethod(filePost);
System.out.println(status + "--------------");
if (status != HttpStatus.SC_OK)
System.out.println(status + "--------------fail----");
else if (status == HttpStatus.SC_OK)
String str = "";
str = filePost.getResponseBodyAsString();
System.out.println(filePost.getResponseBodyAsString()
+ "---------服务器返回值---------");
本回答被提问者和网友采纳
Angular 12 Httpclient jsonp - 如何传递自定义回调参数?
【中文标题】Angular 12 Httpclient jsonp - 如何传递自定义回调参数?【英文标题】:Angular 12 Httpclient jsonp - how to pass custom callback parameter? 【发布时间】:2021-11-04 18:15:49 【问题描述】:Angular 12 - Httpclient jsonp - 如何传递自定义回调参数?
这是完整的应用程序 -> https://stackblitz.com/edit/angular-ivy-2zg5yt?file=src/app/geolocation.service.ts
geolocation-service.ts
import Injectable from '@angular/core';
import Observable from 'rxjs';
import HttpClient from '@angular/common/http';
@Injectable(
providedIn: 'root'
)
export class GeolocationService
constructor(private httpClient: HttpClient)
getLocation(): Observable<any>
return this.httpClient
.jsonp<any>('https://geolocation-db.com/jsonp', 'callback')
.pipe();
给出以下错误:
如何将回调参数值更改为 - https://geolocation-db.com/jsonp?callback=callback
但角度默认为https://geolocation-db.com/jsonp?callback=ng_jsonp_callback_1
【问题讨论】:
【参考方案1】:原来这在 Angular Httpclient jsonp 实现中不是问题。相反,这是https://geolocation-db.com/jsonp
中的一个问题。它不会动态更新回调函数名称。
同样的例子就像http://ip-api.com/json
的魅力
【讨论】:
以上是关于httpclient如何带上参数的主要内容,如果未能解决你的问题,请参考以下文章