curl --location 'https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY' \
--form 'image_url=' \
--form 'targetWidth=' \
--form 'targetHeight=' \
--form 'maxWidth=' \
--form 'maxHeight=' \
--form 'quality=85' \
--form 'format=' \
--form 'image_file=@localfile_path.png'
#include <curl/curl.h>
int main(void) {
CURL *curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, "https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY");
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_mime *mime = curl_mime_init(curl);
curl_mimepart *part = NULL;
part = curl_mime_addpart(mime);
curl_mime_name(part, "image_url");
curl_mime_data(part, "", CURL_ZERO_TERMINATED);
part = curl_mime_addpart(mime);
curl_mime_name(part, "targetWidth");
curl_mime_data(part, "", CURL_ZERO_TERMINATED);
part = curl_mime_addpart(mime);
curl_mime_name(part, "targetHeight");
curl_mime_data(part, "", CURL_ZERO_TERMINATED);
part = curl_mime_addpart(mime);
curl_mime_name(part, "maxWidth");
curl_mime_data(part, "", CURL_ZERO_TERMINATED);
part = curl_mime_addpart(mime);
curl_mime_name(part, "maxHeight");
curl_mime_data(part, "", CURL_ZERO_TERMINATED);
part = curl_mime_addpart(mime);
curl_mime_name(part, "quality");
curl_mime_data(part, "85", CURL_ZERO_TERMINATED);
part = curl_mime_addpart(mime);
curl_mime_name(part, "format");
curl_mime_data(part, "", CURL_ZERO_TERMINATED);
part = curl_mime_addpart(mime);
curl_mime_name(part, "image_file");
curl_mime_filedata(part, "localfile_path.png");
curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);
CURLcode res = curl_easy_perform(curl);
(void)res;
curl_mime_free(mime);
curl_easy_cleanup(curl);
}
return 0;
}
using System;
using System.Collections.Generic;
using System.IO;
using System.Net.Http;
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY");
var content = new MultipartFormDataContent();
content.Add(new StringContent(""), "image_url");
content.Add(new StringContent(""), "targetWidth");
content.Add(new StringContent(""), "targetHeight");
content.Add(new StringContent(""), "maxWidth");
content.Add(new StringContent(""), "maxHeight");
content.Add(new StringContent("85"), "quality");
content.Add(new StringContent(""), "format");
content.Add(new StreamContent(File.OpenRead("localfile_path.png")), "image_file", "localfile_path.png");
request.Content = content;
var response = client.SendAsync(request).Result;
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
package main
import (
"bytes"
"mime/multipart"
"os"
"path/filepath"
"fmt"
"io"
"net/http"
)
func main() {
url := "https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY"
payload := &bytes.Buffer{}
writer := multipart.NewWriter(payload)
_ = writer.WriteField("image_url", "")
_ = writer.WriteField("targetWidth", "")
_ = writer.WriteField("targetHeight", "")
_ = writer.WriteField("maxWidth", "")
_ = writer.WriteField("maxHeight", "")
_ = writer.WriteField("quality", "85")
_ = writer.WriteField("format", "")
file, err := os.Open("localfile_path.png")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
part, err := writer.CreateFormFile("image_file", filepath.Base("localfile_path.png"))
if err != nil {
fmt.Println(err)
return
}
if _, err = io.Copy(part, file); err != nil {
fmt.Println(err)
return
}
if err := writer.Close(); err != nil {
fmt.Println(err)
return
}
req, err := http.NewRequest("POST", url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Set("Content-Type", writer.FormDataContentType())
res, err := http.DefaultClient.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}
OkHttpClient client = new OkHttpClient().newBuilder().build();
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("image_url", "")
.addFormDataPart("targetWidth", "")
.addFormDataPart("targetHeight", "")
.addFormDataPart("maxWidth", "")
.addFormDataPart("maxHeight", "")
.addFormDataPart("quality", "85")
.addFormDataPart("format", "")
.addFormDataPart("image_file", "localfile_path.png",
RequestBody.create(MediaType.parse("application/octet-stream"), new File("localfile_path.png")))
.build();
Request request = new Request.Builder()
.url("https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY")
.method("POST", body)
.build();
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
var form = new FormData();
form.append("image_url", "");
form.append("targetWidth", "");
form.append("targetHeight", "");
form.append("maxWidth", "");
form.append("maxHeight", "");
form.append("quality", "85");
form.append("format", "");
form.append("image_file", fileInput.files[0], "localfile_path.png");
$.ajax({
url: "https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY",
method: "POST",
data: form,
processData: false,
contentType: false
}).done(function (response) {
console.log(response);
});
const formData = new FormData();
formData.append("image_url", "");
formData.append("targetWidth", "");
formData.append("targetHeight", "");
formData.append("maxWidth", "");
formData.append("maxHeight", "");
formData.append("quality", "85");
formData.append("format", "");
formData.append("image_file", fileInput.files[0], "localfile_path.png");
const response = await fetch("https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY", {
method: "POST",
body: formData
});
console.log(await response.text());
import { readFile } from "node:fs/promises";
const formData = new FormData();
formData.append("image_url", "");
formData.append("targetWidth", "");
formData.append("targetHeight", "");
formData.append("maxWidth", "");
formData.append("maxHeight", "");
formData.append("quality", "85");
formData.append("format", "");
formData.append("image_file", new Blob([await readFile("localfile_path.png")], { type: "application/octet-stream" }), "localfile_path.png");
const response = await fetch("https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY", {
method: "POST",
body: formData
});
console.log(await response.text());
#import <Foundation/Foundation.h>
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY"]];
[request setHTTPMethod:@"POST"];
NSString *boundary = [[NSUUID UUID] UUIDString];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"image_url\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"targetWidth\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"targetHeight\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"maxWidth\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"maxHeight\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"quality\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"85\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"format\"\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
NSData *image_fileData = [NSData dataWithContentsOfFile:@"localfile_path.png"];
[body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"image_file\"; filename=\"localfile_path.png\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: application/octet-stream\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:image_fileData];
[body appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setValue:[NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary] forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:body];
NSURLSessionDataTask *task = [[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
return;
}
NSLog(@"%@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
}];
[task resume];
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => array(
"image_url" => "",
"targetWidth" => "",
"targetHeight" => "",
"maxWidth" => "",
"maxHeight" => "",
"quality" => "85",
"format" => "",
"image_file" => new CURLFile("localfile_path.png", "application/octet-stream", "localfile_path.png"),
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import requests
url = "https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY"
payload = { "image_url": "", "targetWidth": "", "targetHeight": "", "maxWidth": "", "maxHeight": "", "quality": "85", "format": "" }
files = {
"image_file": ("localfile_path.png", open("localfile_path.png", "rb"), "application/octet-stream"),
}
try:
response = requests.post(url, data=payload, files=files)
print(response.text)
finally:
for _, file_handle, _ in files.values():
file_handle.close()
require "uri"
require "net/http"
url = URI("https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Post.new(url)
files = [
File.open("localfile_path.png"),
]
begin
form_data = [
["image_url", ""],
["targetWidth", ""],
["targetHeight", ""],
["maxWidth", ""],
["maxHeight", ""],
["quality", "85"],
["format", ""],
["image_file", files[0], { filename: "localfile_path.png" }],
]
request.set_form form_data, "multipart/form-data"
response = https.request(request)
puts response.read_body
ensure
files.each(&:close)
end
import Foundation
let semaphore = DispatchSemaphore(value: 0)
var request = URLRequest(url: URL(string: "https://api.gugudata.com/ai/image-compress?appkey=YOUR_APPKEY")!, timeoutInterval: .infinity)
request.httpMethod = "POST"
let boundary = "Boundary-\(UUID().uuidString)"
var body = Data()
func appendString(_ value: String) { body.append(value.data(using: .utf8)!) }
appendString("--\(boundary)\r\n")
appendString("Content-Disposition: form-data; name=\"image_url\"\r\n\r\n")
appendString("\r\n")
appendString("--\(boundary)\r\n")
appendString("Content-Disposition: form-data; name=\"targetWidth\"\r\n\r\n")
appendString("\r\n")
appendString("--\(boundary)\r\n")
appendString("Content-Disposition: form-data; name=\"targetHeight\"\r\n\r\n")
appendString("\r\n")
appendString("--\(boundary)\r\n")
appendString("Content-Disposition: form-data; name=\"maxWidth\"\r\n\r\n")
appendString("\r\n")
appendString("--\(boundary)\r\n")
appendString("Content-Disposition: form-data; name=\"maxHeight\"\r\n\r\n")
appendString("\r\n")
appendString("--\(boundary)\r\n")
appendString("Content-Disposition: form-data; name=\"quality\"\r\n\r\n")
appendString("85\r\n")
appendString("--\(boundary)\r\n")
appendString("Content-Disposition: form-data; name=\"format\"\r\n\r\n")
appendString("\r\n")
let image_fileData = try! Data(contentsOf: URL(fileURLWithPath: "localfile_path.png"))
appendString("--\(boundary)\r\n")
appendString("Content-Disposition: form-data; name=\"image_file\"; filename=\"localfile_path.png\"\r\n")
appendString("Content-Type: application/octet-stream\r\n\r\n")
body.append(image_fileData)
appendString("\r\n")
appendString("--\(boundary)--\r\n")
request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
request.httpBody = body
let task = URLSession.shared.dataTask(with: request) { data, response, error in
defer { semaphore.signal() }
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
semaphore.wait()