package main import ( "fmt" "strings" "net/http" "io/ioutil" ) func main() { url := "https://api.swep.net/graphql" method := "POST" payload := strings.NewReader(`{`+" "+` "query": "query Calculate() {\r\n calculateSinglePhase(request: {\r\n inputs: {\r\n calculationMethod: DESIGN,\r\n selectedFluidSide1: {\r\n fluidId: 53,\r\n isGas: false,\r\n inputValue: null\r\n },\r\n selectedFluidSide2: {\r\n fluidId: 53,\r\n isGas: false,\r\n inputValue: null\r\n },\r\n coCurrent: false,\r\n selectedHeatExchangers: [\r\n {\r\n heatExchangerInputType: PARENT,\r\n id: 1\r\n }\r\n ],\r\n heatLoad: {\r\n amount: 50,\r\n unit: KILOWATT\r\n },\r\n inletTemperatureSide1: {\r\n amount: 80,\r\n unit: DEGREE_CELSIUS\r\n },\r\n inletTemperatureSide2: {\r\n amount: 20,\r\n unit: DEGREE_CELSIUS\r\n },\r\n outletTemperatureSide1: {\r\n amount: 40,\r\n unit: DEGREE_CELSIUS\r\n },\r\n outletTemperatureSide2: {\r\n amount: 50,\r\n unit: DEGREE_CELSIUS\r\n },\r\n flowSide1: null,\r\n flowSide2: null,\r\n maxPressureDropSide1: {\r\n amount: 20000,\r\n unit: PASCAL\r\n },\r\n maxPressureDropSide2: {\r\n amount: 20000,\r\n unit: PASCAL\r\n },\r\n numberOfPasses: null,\r\n numberOfPlates: null,\r\n numberOfPlatesStack1: null,\r\n numberOfPlatesStack2: null,\r\n oversurface: null,\r\n portSwitch: true,\r\n autoperformance: false\r\n }\r\n }) {\r\n res : calculationResult {\r\n hesNewName : calculatedHeatExchangers {\r\n he :calculatedHeatExchanger {\r\n modelName,\r\n xpc {\r\n class, type, size, material, subtype, execution, pressure\r\n }\r\n },\r\n out:calculationOutputValues {\r\n pressureDropSide2 {\r\n amount\r\n },\r\n pressureDropSide1 {\r\n amount\r\n },\r\n overSurface {\r\n amount\r\n },\r\n portDiameter1 {\r\n amount\r\n }\r\n }\r\n }\r\n }\r\n}\r\n}"`+" "+` }`) client := &http.Client { } req, err := http.NewRequest(method, url, payload) if err != nil { fmt.Println(err) return } req.Header.Add("x-api-key", "YOUR_API_KEY") req.Header.Add("Content-Type", "application/json") res, err := client.Do(req) if err != nil { fmt.Println(err) return } defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) if err != nil { fmt.Println(err) return } fmt.Println(string(body)) }