makeApiRequest.go
golang
a month ago
2.9 kB
1
Indexable
Never
package main import ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http" "net/url" ) // Функция для выполнения API запросов func makeApiRequest(urlStr string, data url.Values) (map[string]interface{}, error) { // Создание HTTP клиента client := http.Client{} // Создание POST запроса с данными в формате x-www-form-urlencoded req, err := http.NewRequest("POST", urlStr, bytes.NewBufferString(data.Encode())) if err != nil { return nil, err } // Установка заголовка Content-Type req.Header.Set("Content-Type", "application/x-www-form-urlencoded") // Выполнение запроса resp, err := client.Do(req) if err != nil { return nil, err } defer resp.Body.Close() // Чтение тела ответа respBody, err := ioutil.ReadAll(resp.Body) if err != nil { return nil, err } // Обработка успешного ответа if resp.StatusCode == http.StatusOK { var responseData map[string]interface{} err := json.Unmarshal(respBody, &responseData) if err != nil { return nil, err } return responseData, nil } // Обработка ошибки HTTP запроса return nil, fmt.Errorf("HTTP Error: %s", resp.Status) } func main() { // Авторизация и запрос товаров с "Al-Style" alStyleAccessToken := "ВАШ_ACCESS_TOKEN_AL_STYLE" alStyleProductsURL := "https://api.al-style.kz/api/elements" alStyleProductsData := url.Values{ "access-token": {alStyleAccessToken}, // Дополнительные параметры запроса "Al-Style", если необходимо } // Выполнение запроса к "Al-Style" alStyleProductsResponse, err := makeApiRequest(alStyleProductsURL, alStyleProductsData) if err != nil { fmt.Println("Ошибка получения данных с Al-Style:", err) return } // Обработка данных "Al-Style" fmt.Println("Данные с Al-Style:", alStyleProductsResponse) // Авторизация и импорт товаров в "Kaspi" kaspiAccessToken := "ВАШ_ACCESS_TOKEN_KASPI" kaspiImportURL := "https://kaspi.kz/api/v2/products/import" kaspiImportData := url.Values{ "access_token": {kaspiAccessToken}, // Дополнительные параметры импорта "Kaspi", если необходимо } // Выполнение запроса на импорт в "Kaspi" kaspiImportResponse, err := makeApiRequest(kaspiImportURL, kaspiImportData) if err != nil { fmt.Println("Ошибка импорта в Kaspi:", err) return } // Обработка данных импорта в "Kaspi" fmt.Println("Ответ от Kaspi:", kaspiImportResponse) }