mirror of
https://github.com/foss42/apidash.git
synced 2025-12-02 02:39:19 +08:00
printing out response code and body
This commit is contained in:
@@ -10,7 +10,27 @@ class cCurlCodeGen {
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <curl/curl.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() {
|
int main() {
|
||||||
CURL *curl;
|
CURL *curl;
|
||||||
CURLcode res;
|
CURLcode res;
|
||||||
@@ -54,11 +74,20 @@ int main() {
|
|||||||
""";
|
""";
|
||||||
String kTemplateQueryParam = """""";
|
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 = """
|
final String kTemplateEnd = """
|
||||||
{% if formdata %}curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);{% endif %}
|
{% 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);
|
curl_easy_cleanup(curl);
|
||||||
return 0;
|
return 0;
|
||||||
@@ -99,7 +128,10 @@ int main() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
var headersList = requestModel.enabledRequestHeaders;
|
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;
|
var headers = requestModel.enabledHeadersMap;
|
||||||
// if (requestModel.hasFormData) {
|
// if (requestModel.hasFormData) {
|
||||||
// headers.putIfAbsent("Content-Type", () => "multipart/form-data");
|
// headers.putIfAbsent("Content-Type", () => "multipart/form-data");
|
||||||
@@ -144,7 +176,9 @@ int main() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
var headers = requestModel.enabledHeadersMap;
|
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);
|
var templateEnd = jj.Template(kTemplateEnd);
|
||||||
result += templateEnd.render({
|
result += templateEnd.render({
|
||||||
"formdata": requestModel.hasFormData,
|
"formdata": requestModel.hasFormData,
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user