У меня есть запрос http сообщения, но теперь при попытке запустить приложение происходит сбой основной активности при создании - PullRequest
0 голосов
/ 24 июня 2019

Я пытаюсь получить сообщение JSON с заголовком API.Но когда я запускаю программу при сбое при создании на моем тестовом устройстве.

Я пытался просмотреть форумы, но ничего о том, какие ошибки из http3 вызывают это.

private val client = OkHttpClient()

@Throws(Exception::class)
fun fetchJson() {
    val formBody = FormBody.Builder()
        //json im trying to post

        .addEncoded("body", "{\n" +
                "  \"dateTime\": \"2018-06-21T09:18:23.283-07:00\",\n" +
                "  \"apiOptions\": [\n" +
                "    \"ALLOWPARTIALAUTH\"\n" +
                "  ],\n" +
                "  \"amount\": {\n" +
                "    \"cashback\": 20,\n" +
                "    \"surcharge\": 5,\n" +
                "    \"tax\": 15,\n" +
                "    \"tip\": 20,\n" +
                "    \"total\": 160\n" +
                "  },\n" +
                "  \"card\": {\n" +
                "    \"entryMode\": \"M\",\n" +
                "    \"expirationDate\": 1230,\n" +
                "    \"number\": \"4321000000001119\",\n" +
                "    \"present\": \"N\",\n" +
                "    \"securityCode\": {\n" +
                "      \"indicator\": \"1\",\n" +
                "      \"value\": \"333\"\n" +
                "    }\n" +
                "  },\n" +
                "  \"clerk\": {\n" +
                "    \"numericId\": 1576\n" +
                "  },\n" +
                "  \"customer\": {\n" +
                "    \"addressLine1\": \"65 Easy St\",\n" +
                "    \"firstName\": \"John\",\n" +
                "    \"lastName\": \"Smith\",\n" +
                "    \"postalCode\": \"65144\"\n" +
                "  },\n" +
                "  \"transaction\": {\n" +
                "    \"invoice\": \"192029\",\n" +
                "    \"notes\": \"Transaction notes are added here\",\n" +
                "    \"hotel\": {\n" +
                "      \"arrivalDateTime\": \"2018-06-18T15:39:01.594-07:00\",\n" +
                "      \"departureDateTime\": \"2018-06-21T09:18:23.283-07:00\",\n" +
                "      \"primaryChargeType\": 1,\n" +
                "      \"specialCode\": 1,\n" +
                "      \"additionalCharges\": {\n" +
                "        \"giftShop\": \"Y\",\n" +
                "        \"laundry\": \"Y\",\n" +
                "        \"miniBar\": \"Y\",\n" +
                "        \"other\": \"Y\",\n" +
                "        \"restaurant\": \"Y\",\n" +
                "        \"telephone\": \"Y\"\n" +
                "      },\n" +
                "      \"roomRates\": [\n" +
                "        {\n" +
                "          \"nights\": 2,\n" +
                "          \"rate\": 159.95\n" +
                "        },\n" +
                "        {\n" +
                "          \"nights\": 3,\n" +
                "          \"rate\": 125.38\n" +
                "        }\n" +
                "      ]\n" +
                "    },\n" +
                "    \"purchaseCard\": {\n" +
                "      \"customerReference\": \"D019D09309F2\",\n" +
                "      \"destinationPostalCode\": \"94719\",\n" +
                "      \"productDescriptors\": [\n" +
                "        \"Hamburger\",\n" +
                "        \"Fries\",\n" +
                "        \"Soda\",\n" +
                "        \"Cookie\"\n" +
                "      ]\n" +
                "    }\n" +
                "  },\n" +
                "  \"lighthouse\": {\n" +
                "    \"data\": \"eyJsaWdodGhvdXNlIjp7ImVtcGxveWVlaWQiOjEyMzQsImRldmljZWlkIjoiMTIzU0FCViJ9fQ==\"\n" +
                "  }\n" +
                "}")
        .build()
    val request = Request.Builder()
            //header information
        .url("https://utgapi.shift4test.com/api/rest/v1/transactions/sale")
        .addHeader("AccessToken","9EB227BC-A820-81CA-7607737B4809AA6E")
        .addHeader("CompanyName","PAWS")
        .addHeader("InterfaceName","ForwardPOS")
        .addHeader("InterfaceVersion","2.1")
        .post(formBody)
        .build()

    val response = client.newCall(request).execute()
    if (!response.isSuccessful) throw IOException("Unexpected code $response")

    System.out.println(response.body()?.string())
}

Я ожидал, что программа запустится, и поэтому она будет разговаривать с API, но это не так.

1 Ответ

0 голосов
/ 25 июня 2019

Вы не можете делать сетевые запросы в главном потоке. Оберните его в асинхронное задание.

...