导航:首页 > 编程语言 > json的httpheader

json的httpheader

发布时间:2023-01-16 18:40:49

jsON数据的HTTP Header应该怎么标记

Http之Get/Post请求区别 1.HTTP请求格式: [] 在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。

㈡ 如何调用http接口获取json数据及GET/POST方式调用http接口

HTTP接口返回的JSON数据,其实就是HTTP请求后返回的HTTP主体那一部分。
HTTP协议规定,HTTP头部和HTTP主体之间是以一个空行分割的。因为HTTP每一行(每一行是指一个头部字段)是以\r\n结束的,一个空行的\r\n,再加上最后一行的结束符\r\n,一起是\r\n\r\n,也就是说,当检测到\r\n\r\n四个字符时,下一个字符开始就是HTTP body的内容了。把HTTP响应主体保存下来就是JSON数据了。

㈢ 如何用curl post 一段包含中文json的文本到服务器

我的博客《PHP cURL实现模拟登录与采集使用方法详解》第十一点发送与获取json数据对此类问题做了详细的讲解,下面是代码示例:

<?php
#json数据
$url='http://test.com/curl/testPostJsonData.php';
$data='{"a":"b"}';
$length=strlen($data);
$header=array(
'Content-Length:'.$length,//不是必需的
'Content-Type:text/json',
);
$ch=curl_init($url);//初始化curl
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$content=curl_exec($ch);//执行并存储结果
curl_close($ch);
echo$content;

# 分割数据
$data=[
'name:Zjmainstay',
'website:http://www.zjmainstay.cn',
];
$data=implode(" ",$data);

#&分割数据
$data='name:Zjmainstay&website:http://www.zjmainstay.cn';


更多详情,包括服务端如何接收此类数据,请查看博客:http://www.zjmainstay.cn/php-curl

㈣ JSON数据的HTTP Header应该怎么标记

第一种
header('Content-type: application/json');
另一种
header('Content-type: text/json');

网络请求设置AuthorizationHeader

-(AFHTTPSessionManager*)defaultHTTPManager{

// 初始化对象

AFHTTPSessionManager*manager=[AFHTTPSessionManager manager];

// 返回的格式

JSONmanager.responseSerializer=[AFJSONResponseSerializer serializer];

// 可接受的文本参数规格

manager.responseSerializer.acceptableContentTypes=[NSSet setWithObjects:@"application/json",@"text/html",@"text/json",@"text/javascript",nil];

// 开始设置请求头

[manager.requestSerializer setValue:@"application/json"forHTTPHeaderField:@"Content-Type"];[manager.requestSerializer setValue:@"填写系统版本"forHTTPHeaderField:@"sysVersion"];[manager.requestSerializer setValue:@"填写设备"forHTTPHeaderField:@"deviceModel"];[manager.requestSerializer setValue:@"填写App版本"forHTTPHeaderField:@"appVersion"];

// uid是每个用户对应的ID cipherText是密码NSString*part1=[NSString stringWithFormat:@"%lld:%@",uid,cipherText];

// 通过 ID :密码 的格式,用Basic 的方式拼接成字符串NSString*authorization=[NSString stringWithFormat:@"Basic %@",[part1 base64Encode]];

// 设置Authorization的方法设置header[manager.requestSerializer setValue:authorization forHTTPHeaderField:@"Authorization"];

// 或者直接调用AF的方法进行设置

//

- (void):(NSString *)username// password:(NSString *)password

//

{

// NSData *basicAuthCredentials = [[NSString stringWithFormat:@"%@:%@", username, password] dataUsingEncoding:NSUTF8StringEncoding];

// NSString *base64AuthCredentials = [basicAuthCredentials :(NSDataBase64EncodingOptions)0];

//

[self setValue:[NSString stringWithFormat:@"Basic %@", base64AuthCredentials] forHTTPHeaderField:@"Authorization"];

// }returnmanager;}

㈥ Http的Header里面包含哪些字段,每个字段都有哪些含义

HTTP报文中的Header可以分为请求中的Header和响应中的Header常见Header详解:Header中”q”值的含义:优先级。 没有q值的优先级默认为1。 q值一样的,范围小的优先级高。 格式:分号。 Accept: 客户端可以接受的Body格式 application/json ——JSON格式 text/plain——纯文本格式 text/html——HTML文本 */*——所有格式 逗号隔开,有顺序。 分号前是主类型,分号后是子类型。 如果没有Accept请求头,相当于*/* Accept-Encoding : Content-Encoding: Accept-Encoding指定浏览器可以支持的web服务器返回内容压缩编码类型。 服务器会通过Accept-Encoding得到客户端支持的压缩方式,如果服务器和浏览器同时支持某种压缩方式,服务器就会添加一种Content-Encoding,来进行压缩。 如果服务器不支持客户端Accept-Encoding中的任何一个压缩方式,则会返回406错误。 如果请求头中没有Accept-Encoding这个头,则会默认客户端支持任何方式。 Accept-Language: 浏览器可接受的自然语言的类型。 如果没有Accept-Language这个请求头,服务器默认客户端支持所有自然语言。 例如:zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4 User-Agent: 主要用于统计和追踪信息,用处不大。可以包含很多信息。 User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36 Content-Type: 表示请求或响应体的格式。 Connection: 设置HTTP连接的持久化,通常都是Keep-Alive。 Connection: close 表示在响应结束后,结束连接。 WWW-Authenticate: WWW-Authenticate响应头必须包含在401授权错误中,表示通过什么方式进行身份验证。 例如:WWW-Authenticate: BASIC realm="application"如果没有ACCEPT请求头?相当于*/* 任何格式都接收如果请求头中没有ACCEPT-ENCODING?默认客户端支持任何方式如果没有ACCEPT-LANGUAGE这个请求头?服务器默认客户端支持所有自然语言。POSTMAN测试正常,前端页面测试不正常??POSTMANJMETER CHROME在JAVA中取得请求头?取得HttpServletRequest对象 public String getHeader(String name); public Enumeration getHeaders(String name); public Enumeration getHeaderNames();在JAVA中添加响应头?取得HttpServletResponse对象 public void setHeader(String name, String value);——会覆盖 public void addHeader(String name, String value);——添加多个值如何用JAVA更改请求头?网络 ptteng.github.io/PPT/PPT-java/java-task2-header.html

㈦ php post 设置header json传参

public function urlGetContent( params = null, json = false)
{
ch, CURLOPT_URL, ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt( ch, CURLOPT_HEADER, 0);
if ( ch, CURLOPT_POST, true);
if ( params)) {
params);
}
if (is_string( params)) {
curl_setopt( params);
} else {
// error_log("Argument $params should be an array of parameters or (if you want to send raw data) a string");
return false;
}
if ( ch, CURLOPT_HTTPHEADER,
array(
'Content-Type: application/json; charset=utf-8',
'Content-Length:' . strlen( ch, CURLOPT_RETURNTRANSFER, 1);
ch);
curl_close( output;
}

㈧ 如何获取 httpclient 请求json 参数

import java.io.IOException;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
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;

/**
*
*/
public class HttpClientUtil {

public static void main(String arg[]) throws Exception {
String url = "test.com";
JSONObject params = new JSONObject();
params.put("SRC_STM_CODE", "wsf");
params.put("TENANT_ID", "123");
params.put("NM", "张三");
params.put("BRTH_DT", "1983-01-20");
params.put("GND_CODE", "1");
JSONArray params2 = new JSONArray();
JSONObject param3 = new JSONObject();
param3.put("DOC_TP_CODE", "10100");
param3.put("DOC_NBR", "100200198301202210");
param3.put("DOC_CUST_NM", "test");
params2.add(param3);
params.put("DOCS", params2);
String ret = doPost(url, params).toString();
System.out.println(ret);
}

/**
httpClient的get请求方式2
* @return
* @throws Exception
*/
public static String doGet(String url, String charset)
throws Exception {
/*
* 使用 GetMethod 来访问一个 URL 对应的网页,实现步骤: 1:生成一个 HttpClinet 对象并设置相应的参数。
* 2:生成一个 GetMethod 对象并设置响应的参数。 3:用 HttpClinet 生成的对象来执行 GetMethod 生成的Get
* 方法。 4:处理响应状态码。 5:若响应正常,处理 HTTP 响应内容。 6:释放连接。
*/
/* 1 生成 HttpClinet 对象并设置参数 */
HttpClient httpClient = new HttpClient();
// 设置 Http 连接超时为5秒
httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
/* 2 生成 GetMethod 对象并设置参数 */
GetMethod getMethod = new GetMethod(url);
// 设置 get 请求超时为 5 秒
getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000);
// 设置请求重试处理,用的是默认的重试处理:请求三次
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
String response = "";
/* 3 执行 HTTP GET 请求 */
try {
int statusCode = httpClient.executeMethod(getMethod);
/* 4 判断访问的状态码 */
if (statusCode != HttpStatus.SC_OK) {
System.err.println("请求出错: "+ getMethod.getStatusLine());
}
/* 5 处理 HTTP 响应内容 */
// HTTP响应头部信息,这里简单打印
Header[] headers = getMethod.getResponseHeaders();
for (Header h : headers)
System.out.println(h.getName() + "------------ " + h.getValue());
// 读取 HTTP 响应内容,这里简单打印网页内容
byte[] responseBody = getMethod.getResponseBody();// 读取为字节数组
response = new String(responseBody, charset);
System.out.println("----------response:" + response);
// 读取为 InputStream,在网页内容数据量大时候推荐使用
// InputStream response = getMethod.getResponseBodyAsStream();
} catch (HttpException e) {
// 发生致命的异常,可能是协议不对或者返回的内容有问题
System.out.println("请检查输入的URL!");
e.printStackTrace();
} catch (IOException e) {
// 发生网络异常
System.out.println("发生网络异常!");
e.printStackTrace();
} finally {
/* 6 .释放连接 */
getMethod.releaseConnection();
}
return response;
}

/**
* post请求
* @param url
* @param json
* @return
*/

public static JSONObject doPost(String url,JSONObject json){
DefaultHttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
JSONObject response = null;
try {
StringEntity s = new StringEntity(json.toString());
s.setContentEncoding("UTF-8");
s.setContentType("application/json");//发送json数据需要设置contentType
post.setEntity(s);
HttpResponse res = client.execute(post);
if(res.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
HttpEntity entity = res.getEntity();
String result = EntityUtils.toString(res.getEntity());// 返回json格式:
response = JSONObject.fromObject(result);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
return response;
}

}

㈨ 如何用curl post 一段包含中文json的文本到服务器

一般中文json_encode之后会变成uxxxx的格式了,只要使用正规的json_encode处理,
不需要考虑中文问题。

至于如何post数据到服务器,需要设定header,参考代码如下:
<?php
#json数据
$url='http://test.com/curl/testPostJsonData.php';
$data='{"a":"b"}';
$length=strlen($data);
$header=array(
'Content-Length:'.$length,//不是必需的
'Content-Type:text/json',
);
$ch=curl_init($url);//初始化curl
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$content=curl_exec($ch);//执行并存储结果
curl_close($ch);
echo$content;

服务端需要使用$data=file_get_contents('php://input');获取数据。

更多PHPcURL内容请参考我的博客《PHPcURL实现模拟登录与采集使用方法详解教程

阅读全文

与json的httpheader相关的资料

热点内容
thinkpadwin10一键恢复 浏览:498
excel数据库的数据结构是树形吗 浏览:225
templatewebjs下载 浏览:774
note3应用程序未安装 浏览:714
dos看图工具 浏览:15
微信直接加为好友 浏览:467
可以用微信传送的文件app 浏览:294
pdf文件解析乱码 浏览:479
光照无关图代码 浏览:688
Linux读写文件前八位 浏览:597
word如何绘制饼状图 浏览:172
w7系统搜索文件夹 浏览:618
java线程变量 浏览:854
苹果电脑word是只读文件 浏览:691
ps5国行备份文件大小 浏览:754
linux恢复删除文件命令 浏览:805
win10家庭版打不开qq文件 浏览:794
女生来例假有哪个app比较好 浏览:66
调用后台接口为什么不显示数据 浏览:363
js判断重复 浏览:422

友情链接