Sample code for 30+ languages & platforms
Go

Shippo Generate a Return Label

See more Shippo Examples

Demonstrates how to generate a pay-on-use return label.

Chilkat Go Downloads

Go
    success := false

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    http := chilkat.NewHttp()

    // Implements the following CURL command:

    // curl https://api.goshippo.com/shipments/ \
    //     -H "Authorization: ShippoToken <API_Token>" \
    //     -d address_from="d799c2679e644279b59fe661ac8fa488" \
    //     -d address_to="42236bcf36214f62bcc6d7f12f02a849" \
    //     -d parcels=["7df2ecf8b4224763ab7c71fae7ec8274"] \
    //     -d shipment_date="2013-12-03T12:00:00.000Z" \
    //     -d extra='{ "is_return": true}' \
    //     -d async=false

    req := chilkat.NewHttpRequest()
    req.SetHttpVerb("POST")
    req.SetPath("/shipments/")
    req.SetContentType("application/x-www-form-urlencoded")
    req.AddParam("address_from","d799c2679e644279b59fe661ac8fa488")
    req.AddParam("address_to","42236bcf36214f62bcc6d7f12f02a849")
    req.AddParam("parcels","[\"7df2ecf8b4224763ab7c71fae7ec8274\"]")
    req.AddParam("shipment_date","2013-12-03T12:00:00.000Z")
    req.AddParam("extra","'{ \"is_return\": true}'")
    req.AddParam("async","false")

    req.AddHeader("Authorization","ShippoToken <API_Token>")

    resp := chilkat.NewHttpResponse()
    success = http.HttpReq("https://api.goshippo.com/shipments/",req,resp)
    if success == false {
        fmt.Println(http.LastErrorText())
        http.DisposeHttp()
        req.DisposeHttpRequest()
        resp.DisposeHttpResponse()
        return
    }

    sbResponseBody := chilkat.NewStringBuilder()
    resp.GetBodySb(sbResponseBody)
    jResp := chilkat.NewJsonObject()
    jResp.LoadSb(sbResponseBody)
    jResp.SetEmitCompact(false)

    fmt.Println("Response Body:")
    fmt.Println(*jResp.Emit())

    respStatusCode := resp.StatusCode()
    fmt.Println("Response Status Code = ", respStatusCode)
    if respStatusCode >= 400 {
        fmt.Println("Response Header:")
        fmt.Println(resp.Header())
        fmt.Println("Failed.")
        http.DisposeHttp()
        req.DisposeHttpRequest()
        resp.DisposeHttpResponse()
        sbResponseBody.DisposeStringBuilder()
        jResp.DisposeJsonObject()
        return
    }

    // Sample JSON response:
    // (Sample code for parsing the JSON response is shown below)

    // {}

    // Sample code for parsing the JSON response...
    // Use the following online tool to generate parsing code from sample JSON:
    // Generate Parsing Code from JSON


    http.DisposeHttp()
    req.DisposeHttpRequest()
    resp.DisposeHttpResponse()
    sbResponseBody.DisposeStringBuilder()
    jResp.DisposeJsonObject()