|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
#include "url.h"
|
|
|
|
#include "request.h"
|
|
|
|
|
|
|
|
#define MAX_BUFFER_SIZE 50000
|
|
|
|
|
|
|
|
struct Request_s {
|
|
|
|
URL* url;
|
|
|
|
char* req_type;
|
|
|
|
};
|
|
|
|
|
|
|
|
Request* new_request(char* url_str,char* req_type_str) {
|
|
|
|
Request* req = malloc(sizeof(struct Request_s));
|
|
|
|
req->url = new_url(url_str);
|
|
|
|
req->req_type = req_type_str;
|
|
|
|
}
|
|
|
|
|
|
|
|
URL* get_url(Request* req) {
|
|
|
|
return req->url;
|
|
|
|
}
|
|
|
|
|
|
|
|
char* make_request(Request* req) {
|
|
|
|
char* request_str = malloc(sizeof(char) * MAX_BUFFER_SIZE);
|
|
|
|
|
|
|
|
strcat(request_str,req->req_type);
|
|
|
|
strcat(request_str," ");
|
|
|
|
strcat(request_str,get_filepath(req->url));
|
|
|
|
strcat(request_str," HTTP/1.1");
|
|
|
|
strcat(request_str,"\r\n");
|
|
|
|
strcat(request_str,"Host: ");
|
|
|
|
strcat(request_str,get_hostname(req->url));
|
|
|
|
strcat(request_str,"\r\n\r\n");
|
|
|
|
|
|
|
|
return request_str;
|
|
|
|
|
|
|
|
if (strcmp(get_schema(req->url),"http") == 0) {
|
|
|
|
|
|
|
|
} else if (strcmp(get_schema(req->url),"https") == 0) {
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|