Tôi đang cố gắng để phân tích phản ứng HTTP sau:C mới bắt đầu: string phân tích
HTTP/1.1 200 OK
Date: Tue, 06 Dec 2011 11:15:21 GMT
Server: Apache/2.2.14 (Ubuntu)
X-Powered-By: PHP/5.3.2-1ubuntu4.9
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 48
Content-Type: text/html
��(�ͱ���I�O����H�����ч��
�4�@�B�$���S
tôi muốn trích xuất "48" và nội dung nhị phân.
Đây là những gì tôi đã cố gắng sofar:
//char* str contains the response
char * pch;
printf ("Splitting response into tokens:\n");
pch = strtok (str,"\r\n");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, "\r\n");
}
Nhưng tôi kinda khó khăn bây giờ ... Any help is appreciated rất nhiều.
chỉnh sửa:
Dưới đây là những gì tôi đã làm sofar:
char* pch;
char* pch2;
pch=strstr(buf,"Content-Length:");
pch2=strstr(pch,"\r\n");
Làm thế nào tôi có thể nhận được các bit giữa hai con trỏ này?
Edit: giải pháp:
char* pch;
char* pch2;
pch=strstr(buf,"Content-Length:");
int i=0;
char contLen[20];
for(i=0;i<20;i++){
char next=pch[strlen("Content-Length:")+i];
if(next=='\r' || next=='\n'){
break;
}
contLen[i]=next;
}
printf("%d\n",atoi(contLen));
Bạn có thể kiểm tra http://curl.haxx.se/libcurl/c/ và tùy chọn 'CURLOPT_WRITEHEADER' – Cyclonecode
Tôi muốn tránh sử dụng CURL. Tôi đang làm mọi thứ bằng cách sử dụng ổ cắm ... – Eamorr