mirror of
https://github.com/foss42/apidash.git
synced 2025-12-01 18:28:25 +08:00
printing out response code and body
This commit is contained in:
@@ -10,7 +10,27 @@ class cCurlCodeGen {
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <curl/curl.h>
|
||||
struct ResponseData {
|
||||
char *data;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
size_t write_callback(char *ptr, size_t size, size_t nmemb, void *userdata) {
|
||||
struct ResponseData *response_data = (struct ResponseData *)userdata;
|
||||
size_t real_size = size * nmemb;
|
||||
|
||||
response_data->data = realloc(response_data->data, response_data->size + real_size + 1);
|
||||
if (response_data->data == NULL) {
|
||||
fprintf(stderr, "Memory allocation failed\\n\");
|
||||
return 0;
|
||||
}
|
||||
|
||||
memcpy(&(response_data->data[response_data->size]), ptr, real_size);
|
||||
response_data->size += real_size;
|
||||
response_data->data[response_data->size] = 0;
|
||||
|
||||
return real_size;
|
||||
}
|
||||
int main() {
|
||||
CURL *curl;
|
||||
CURLcode res;
|
||||
@@ -54,11 +74,20 @@ int main() {
|
||||
""";
|
||||
String kTemplateQueryParam = """""";
|
||||
|
||||
String kTemplateRequest = """{% if method != "GET" and method != "POST" %}\n curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "{{method}}");{% endif %}""";
|
||||
String kTemplateRequest =
|
||||
"""{% if method != "GET" and method != "POST" %}\n curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "{{method}}");{% endif %}""";
|
||||
|
||||
final String kTemplateEnd = """
|
||||
{% if formdata %}curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);{% endif %}
|
||||
res = curl_easy_perform(curl);{% if formdata %}\n curl_mime_free(mime);{% endif %}{% if headers %}\n curl_slist_free_all(headers);{% endif %}
|
||||
struct ResponseData response_data = {0};
|
||||
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
|
||||
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response_data);
|
||||
res = curl_easy_perform(curl);
|
||||
long response_code;
|
||||
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
|
||||
printf("Response code: %ld\\n\", response_code);
|
||||
printf("Response body: %s\\n\", response_data.data);
|
||||
free(response_data.data);{% if formdata %}\n curl_mime_free(mime);{% endif %}{% if headers %}\n curl_slist_free_all(headers);{% endif %}
|
||||
}
|
||||
curl_easy_cleanup(curl);
|
||||
return 0;
|
||||
@@ -99,7 +128,10 @@ int main() {
|
||||
);
|
||||
|
||||
var headersList = requestModel.enabledRequestHeaders;
|
||||
if (headersList != null || requestModel.hasBody || requestModel.hasTextData || requestModel.hasJsonData) {
|
||||
if (headersList != null ||
|
||||
requestModel.hasBody ||
|
||||
requestModel.hasTextData ||
|
||||
requestModel.hasJsonData) {
|
||||
var headers = requestModel.enabledHeadersMap;
|
||||
// if (requestModel.hasFormData) {
|
||||
// headers.putIfAbsent("Content-Type", () => "multipart/form-data");
|
||||
@@ -144,7 +176,9 @@ int main() {
|
||||
}
|
||||
}
|
||||
var headers = requestModel.enabledHeadersMap;
|
||||
bool allow = headers.isNotEmpty || requestModel.hasTextData || requestModel.hasJsonData;
|
||||
bool allow = headers.isNotEmpty ||
|
||||
requestModel.hasTextData ||
|
||||
requestModel.hasJsonData;
|
||||
var templateEnd = jj.Template(kTemplateEnd);
|
||||
result += templateEnd.render({
|
||||
"formdata": requestModel.hasFormData,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user