工具/软件:TI-RTOS
您好!
SDK 中有两个有关 Cookie 的头参数、 HttpClient_HFIELD_RES_SET_cookie 和 HttpClient_HFIELD_REQ_cookie、但我认为 HttpClient_HFIELD_RES_SET_TLS 可以设置、但我无法从某些测试 Cookie (https)网页中设置 Cookie。 我们如何设置 Cookie 信息并使用?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:TI-RTOS
您好!
SDK 中有两个有关 Cookie 的头参数、 HttpClient_HFIELD_RES_SET_cookie 和 HttpClient_HFIELD_REQ_cookie、但我认为 HttpClient_HFIELD_RES_SET_TLS 可以设置、但我无法从某些测试 Cookie (https)网页中设置 Cookie。 我们如何设置 Cookie 信息并使用?
您好!
您能否详细说明您使用了哪些 http API?
HttpClient_setHeader()应用于请求标头(传出请求中的内容)和响应标头(从服务器获取的,即如果需要,可以过滤 NWP 上的标头)。
默认情况下、如果未设置任何请求标头、则所有标头都将具有大小限制、可以在 httpclient.h 头文件中读取这些标头。
因此、可能接头太长。 在这种情况下,您可以尝试使用 HttpClient_setHeader()如上所示过滤一些长头文件。
要读取 Cookie 标头,应使用 HttpClient_getHeader()和 HttpClient_HFIELD_RES_SET_cookie 选项。
此致、
Shlomi
您好、Shlomi、
我会像您所写的那样使用 httpclient.c。 您可以在下面看到我的代码。 对于标头大小、我在 httpclient_internal.h 中找到了 MAX_HEADER_LEN 参数并对其进行了更改、但它不起作用。
谢谢。
int16_t getHeaders (HttpClient_Handle handle){ //函数返回所有头文件
int16_t ret = 0;
字符数据[1000];
memset (data、0、sizeof (data));
uint8_t i;
对于(i = 0;i<26;i++){
if (i<26)
RET = HttpClient_getHeader (handle、i、data、sizeof (data)、HttpClient_HFIELD_persistent);
UART_PRINT ("%d %d:%s \n"、ret、i、data);
memset (data、0、sizeof (data));
}
return;
}
void setHeaders (HttpClient_handle httpClientHandle){
int16_t ret = 0;
ret = HttpClient_SETOPT (httpClientHandle、HttpClient_redirect_tls_downgrade、1、1、1、 0);
if (ret < 0)
{
printError ("httpTask: Setting options failed"、ret);
}
RET =
HttpClient_setHeader (httpClientHandle、
HttpClient_HFIELD_REQ_USER_AGENT、
USER_AGENT、strlen (USER_AGENT)、
HttpClient_HFIELD_PERSISTENT);
if (ret < 0)
{
printError ("httpTask:设置请求标头失败"、ret);
}
RET =
HttpClient_setHeader (httpClientHandle、
HttpClient_HFIELD_REQ_Accept、
接受、strlen (接受)、
HttpClient_HFIELD_PERSISTENT);
if (ret < 0)
{
printError ("httpTask:设置请求标头失败"、ret);
}
RET =
HttpClient_setHeader (httpClientHandle、
HttpClient_HFIELD_REQ_Accept_encoding、
Accept_encoding、strlen (Accept_encoding)、
HttpClient_HFIELD_PERSISTENT);
if (ret < 0)
{
printError ("httpTask:设置请求标头失败"、ret);
}
RET =
HttpClient_setHeader (httpClientHandle、
HttpClient_HFIELD_REQ_cache_control、
cache_CTRL、strlen (cache_CTRL)、
HttpClient_HFIELD_PERSISTENT);
if (ret < 0)
{
printError ("httpTask:设置请求标头失败"、ret);
}
RET =
HttpClient_setHeader (httpClientHandle、
HttpClient_HFIELD_REQ_content_type、
content_type、strlen (content_type)、
HttpClient_HFIELD_PERSISTENT);
if (ret < 0)
{
printError ("httpTask:设置请求标头失败"、ret);
}
RET =
HttpClient_setHeader (httpClientHandle、
HttpClient_HFIELD_REQ_CONNECTION、
连接、strlen (连接)、
HttpClient_HFIELD_PERSISTENT);
if (ret < 0)
{
printError ("httpTask:设置请求标头失败"、ret);
}
}
您好 、Shlomi、
这不奏效。 以便我将 https 连接部分实现到 HttpGE.c 演示应用程序。 您只需要更改这2个文件(附加)、从另一个演示项目和证书中实现 UART_TERM.c 和 uart_term.h 文件。 它需要来自 UART 的服务器参数、所有信息都来自 UART、很抱歉未进行注释。我使用 CCS 版本:8.1.0.00011和 TI v18.1.4.LTS 编译器和 simplelink_cc32xx_sdk_2_30_00_05