httpclient如何带上参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了httpclient如何带上参数相关的知识,希望对你有一定的参考价值。

参考技术A public static String getMimeType(String fileUrl) throws java.io.IOException
FileNameMap 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如何带上参数的主要内容,如果未能解决你的问题,请参考以下文章

httpclien模拟浏览器

HttpClient请求URL

使用 Httpclient 信任自签名证书

HttpClient 与 HttpWebRequest

通用 Windows 项目 - HttpClient 异常

浅谈httpClient使用总结