Я устал использовать Async, но я не уверен, как его использовать. Все, что я знаю, это то, что функция должна работать в фоновом режиме. Thread
button.setOnClickListener {
run()
}
}
}
fun run() {
val client = OkHttpClient()
// this sets up the header and body settings
val mediaType = MediaType.parse("application/json")
val body = RequestBody.create(
mediaType,
"{\r\n \"dateTime\": \"2019-07-01T00:00:00-07:00\",\r\n \"apiOptions\": [\r\n \"ALLOWPARTIALAUTH\"\r\n ],\r\n \"amount\": {\r\n \"cashback\": 20,\r\n \"surcharge\": 5,\r\n \"tax\": 15,\r\n \"tip\": 20,\r\n \"total\": 160\r\n },\r\n \"card\": {\r\n \"entryMode\": \"M\",\r\n \"expirationDate\": 1230,\r\n \"number\": \"4321000000001119\",\r\n \"present\": \"N\",\r\n \"securityCode\": {\r\n \"indicator\": \"1\",\r\n \"value\": \"333\"\r\n }\r\n },\r\n \"clerk\": {\r\n \"numericId\": 1576\r\n },\r\n \"customer\": {\r\n \"addressLine1\": \"65 Easy St\",\r\n \"firstName\": \"John\",\r\n \"lastName\": \"Smith\",\r\n \"postalCode\": \"65144\"\r\n },\r\n \"transaction\": {\r\n \"invoice\": \"192029\",\r\n \"notes\": \"Transaction notes are added here\",\r\n \"hotel\": {\r\n \"arrivalDateTime\": \"2018-06-18T15:39:01.594-07:00\",\r\n \"departureDateTime\": \"2018-06-21T09:18:23.283-07:00\",\r\n \"primaryChargeType\": 1,\r\n \"specialCode\": 1,\r\n \"additionalCharges\": {\r\n \"giftShop\": \"Y\",\r\n \"laundry\": \"Y\",\r\n \"miniBar\": \"Y\",\r\n \"other\": \"Y\",\r\n \"restaurant\": \"Y\",\r\n \"telephone\": \"Y\"\r\n },\r\n \"roomRates\": [\r\n {\r\n \"nights\": 2,\r\n \"rate\": 159.95\r\n },\r\n {\r\n \"nights\": 3,\r\n \"rate\": 125.38\r\n }\r\n ]\r\n },\r\n \"purchaseCard\": {\r\n \"customerReference\": \"D019D09309F2\",\r\n \"destinationPostalCode\": \"94719\",\r\n \"productDescriptors\": [\r\n \"Hamburger\",\r\n \"Fries\",\r\n \"Soda\",\r\n \"Cookie\"\r\n ]\r\n }\r\n },\r\n \"lighthouse\": {\r\n \"data\": \"eyJsaWdodGhvdXNlIjp7ImVtcGxveWVlaWQiOjEyMzQsImRldmljZWlkIjoiMTIzU0FCViJ9fQ==\"\r\n }\r\n}"
)
// this creates the body and headder. The request builder is just talking to the api
val request = Request.Builder()
.url("https://utgapi.shift4test.com/api/rest/v1/transactions/sale")
.post(body)
.addHeader("AccessToken", "7CEECC0B-3D02-4497-8CDB-00F7545295CF")
.addHeader("CompanyName", "PAWS")
.addHeader("InterfaceName", "ForwardPOS")
.addHeader("InterfaceVersion", "2.1")
.addHeader("Content-Type", "application/json")
.addHeader("User-Agent", "PostmanRuntime/7.15.0")
.addHeader("Accept", "*/*")
.addHeader("Cache-Control", "no-cache")
.addHeader("Postman-Token", "a3482f14-91c4-4300-8ad4-748c3c0a8107,2f922be0-d117-44fc-b13f-c975eb40098e")
.addHeader("Host", "utgapi.shift4test.com")
.addHeader("accept-encoding", "gzip, deflate")
.addHeader("content-length", "1611")
.addHeader("Connection", "keep-alive")
.addHeader("cache-control", "no-cache")
.build()
val response = client.newCall(request).execute();
if (!response.isSuccessful())
//prints out the json
System.out.println(response.body()?.string());
}
Я немного огляделся, но ничто не помогло мне найти то, что я искал.