Hoppa till innehåll

Skicka multipart form-data i Azure Logic App

En Azure Logic App kan användas för att schemalägga arbete genom att anropa en uri vid en viss tid under en period eller i intervaller under en period. Det är lätt att lägga till rubriker och frågeparametrar i en HTTP-åtgärd, det är inte lika enkelt att skicka multipart form-data.

Logikapp

Skapa en logikapp i Azure Portal, lägg till en schema-åtgärd och en HTTP-åtgärd i designvyn. Du kan välja POST som metod, lägga till URI och spara medan du är i designvyn.

Postman

Öppna Postman och skapa en ny begäran (request). Lägg till all formulärdata som behövs för din begäran, klicka på länken Code och välj ”Java OK HTTP”. Utmatningen innehåller ett rubrikvärde och text (body).

Postman
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW");
RequestBody body = RequestBody.create(mediaType, "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"Guid\"\r\n\r\n43895774-8b3c-4a92-aa18-aaef6ef613c8\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"FortnoxApiValues\"\r\n\r\n{\n  \"AccessToken\": \"43895774-8b3c-4a92-aa18-aaef6ef613c8\",\n  \"PriceList\": \"A\",\n  \"PenaltyInterest\": 0.1,\n  \"SalesVatTypeSE\": \"SEVAT\",\n  \"SalesAccountSE25\": \"3001\",\n  \"SalesAccountSE12\": \"3002\",\n  \"SalesAccountSE6\": \"3003\",\n  \"SalesAccountSE0\": \"3004\",\n  \"SalesAccountSEREVERSEDVAT\": \"3231\",\n  \"SalesAccountEUVAT\": \"3106\",\n  \"SalesAccountEUREVERSEDVAT\": \"3108\",\n  \"SalesAccountEXPORT\": \"3105\",\n  \"PurchaseAccount\": \"4000\",\n  \"StockArticle\": false,\n  \"StockAccount\": \"1460\",\n  \"StockChangeAccount\": \"4990\",\n  \"OnlyAllowTrustedSenders\": false\n}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"DoxservrApiValues\"\r\n\r\n{\n  \"ApiHost\": \"https://www.doxservr.com\",\n  \"ApiEmail\": \"calle@mysite.se\",\n  \"ApiPassword\": \"43895774-8b3c-4a92-aa18-aaef6ef613c8\"\n}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--");
Request request = new Request.Builder()
  .url("http://localhost:7071/api/fortnoxexport")
  .post(body)
  .addHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW")
  .addHeader("cache-control", "no-cache")
  .addHeader("Postman-Token", "1656e641-082a-486a-9a0f-9b9273117641")
  .build();

Response response = client.newCall(request).execute();

Lägg till rubrik och text

Öppna kodvyn för din logikapp och lägg till en rubrik för innehållstyp (Content-Type) enligt utdatan från Postman och ersätt texten i body med strängutmatningen från Postman.

{
    "definition": {
        "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
        "actions": {
            "HTTP": {
                "inputs": {
                    "body": "------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"Guid\"\r\n\r\n@{guid()}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"FortnoxApiValues\"\r\n\r\n{\n  \"AccessToken\": \"43895774-8b3c-4a92-aa18-aaef6ef613c8\",\n  \"PriceList\": \"A\",\n  \"PenaltyInterest\": 0.1,\n  \"SalesVatTypeSE\": \"SEVAT\",\n  \"SalesAccountSE25\": \"3001\",\n  \"SalesAccountSE12\": \"3002\",\n  \"SalesAccountSE6\": \"3003\",\n  \"SalesAccountSE0\": \"3004\",\n  \"SalesAccountSEREVERSEDVAT\": \"3231\",\n  \"SalesAccountEUVAT\": \"3106\",\n  \"SalesAccountEUREVERSEDVAT\": \"3108\",\n  \"SalesAccountEXPORT\": \"3105\",\n  \"PurchaseAccount\": \"4000\",\n  \"StockArticle\": false,\n  \"StockAccount\": \"1460\",\n  \"StockChangeAccount\": \"4990\",\n  \"OnlyAllowTrustedSenders\": false\n}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"DoxservrApiValues\"\r\n\r\n{\n  \"ApiHost\": \"https://www.doxservr.com\",\n  \"ApiEmail\": \"calle@mysite.se\",\n  \"ApiPassword\": \"43895774-8b3c-4a92-aa18-aaef6ef613c8\"\n}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--",
                    "headers": {
                        "Content-Type": "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
                    },
                    "method": "POST",
                    "uri": "https://mysite.azurewebsites.net/api/function"
                },
                "runAfter": {},
                "type": "Http"
            }
        },
        "contentVersion": "1.0.0.0",
        "outputs": {},
        "parameters": {},
        "triggers": {
            "Återkommande": {
                "recurrence": {
                    "frequency": "Day",
                    "interval": 1,
                    "schedule": {
                        "hours": [
                            "0"
                        ]
                    },
                    "timeZone": "UTC"
                },
                "type": "Recurrence"
            }
        }
    }
}

Om du måste använda uttryck i din begäran som @{guid ()} i det här exemplet, ersätt värden med uttryck. Spara logikappen och testa den. Gå inte till designvyn och spara logikappen, detta kan förstöra kodningen av kroppsinnehållet.

Etiketter:

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *