используя asp classic для взаимодействия с phoneburner - PullRequest
0 голосов
/ 17 мая 2019

У меня есть пример скручивания:

$ curl https://www.phoneburner.com/rest/1/tranquility

{
    "http_status": 200,
    "status": "success",
    "tranquility": 
    {
    "tranquility": 
    [

        {
            "meaning": "the quality or state of being tranquil; calm."
        }
    ],
    "total_results": 1,
    "page": 1,
    "page_size": 1,
    "total_pages": 1
}
}

мне нужно использовать asp classic для отправки этого запроса на phoneburner

тогда мне нужно отправить:

$ curl https://www.phoneburner.com/rest/1/members/ \ -H "Авторизация: Носитель EibGl9i8WNi0iI3a0He6PYg1Kntpzq8y3foSxQyg"

{
        "http_status": 200,
        "status": "success",
        "members":
        {
                "total_results": 1,
                "members":
                [

                    {
                            "user_id": "1234567",
                            "username": "saulgoodman",
                            "first_name": "Saul",
                            "last_name": "Goodman",
                            "email_address": "callsaul@bettercallsaul.com",
                            "date_added": "2013-01-17 17:12:13",
                            "phone": "9492181234",
                            "display_name": "Standard Account",
                            "billing_item_id": "131",
                            "subscription_status": "1",
                            "_link":
                            {
                                    "self":
                                    {
                                            "href": "\/rest\/1\/members\/1234567"
                                    }
                            }
                    }
            ],
            "page": 1,
            "page_size": 1,
            "total_pages": 1
    }

как мне отправить их с asp classic?

1 Ответ

2 голосов
/ 17 мая 2019

Цель, к которой вы пытаетесь добраться, - отправить HTTP-запрос POST с пользовательскими данными публикации и пользовательским заголовком - все с помощью сценария ASP.

ASP Classic имеет две разные реализации: VBScript и JScript.Я собираюсь дать ответ на VBScript.

<%
sub DoPOST(strJsonData, strEndpointURL, strAuthorizationToken)
    dim objHttp
    set objHttp = server.createobject("MSXML2.ServerXMLHTTP")
    with objHttp
        .open "POST", strEndpointURL, false
        .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
        if len(strAuthorizationToken) > 0 then
            .setRequestHeader "Authorization", "Bearer "& strAuthorizationToken
        end if
        .send strJsonData
    end with
    Set xmlhttp = nothing
end sub

strPostData = "{""http_status"": 200, ""status"": ""success"", ""tranquility"": { ""tranquility"": [{""meaning"": ""the quality or state of being tranquil; calm.""}],""total_results"": 1,""page"": 1,""page_size"": 1,""total_pages"": 1}}"
call DoPOST(strPostData, "https://www.phoneburner.com/rest/1/tranquility", empty)


strPostData = "{ ""http_status"": 200, ""status"": ""success"", ""members"": { ""total_results"": 1, ""members"": [{""user_id"": ""1234567"",""username"": ""saulgoodman"",""first_name"": ""Saul"",""last_name"": ""Goodman"",""email_address"": ""callsaul@bettercallsaul.com"",""date_added"": ""2013-01-17 17:12:13"",""phone"": ""9492181234"",""display_name"": ""Standard Account"",""billing_item_id"": ""131"",""subscription_status"": ""1"",""_link"":{""self"":{""href"": ""\/rest\/1\/members\/1234567""}}}],""page"": 1,""page_size"": 1,""total_pages"": 1}"
call DoPOST(strPostData, "https://www.phoneburner.com/rest/1/members/", "EibGl9i8WNi0iI3a0He6PYg1Kntpzq8y3foSxQyg")
%>

Объяснение:

Я создал подпрограмму, которая выполняет операцию HTTP POST через объект MSXML2.ServerXMLHTTP.Вы можете вызывать эту подпрограмму дважды, просто предоставляя ей разные параметры каждый раз.

Некоторые важные замечания о коде, который я предоставил:

1) Вы должны экранировать каждую цитату в вашей строке JSONпоскольку ASP VBScript использует только строки кавычек для выделения строковых литералов, поэтому, удваивая кавычки в вашем JSON с другим, вы фактически избегаете его (например, «JSON» становится «« JSON »»).

2)Второй параметр - это URL-адрес, на который необходимо отправить данные.

3) Третий параметр - это ваш токен авторизации, который будет передаваться в заголовке HTTP во втором POST (т. Е. Authorization: Bearer EibGl9i8WNi0iI3a0He6PYg1Kntpzq8y3foSxQyg).Если вы предоставите его в списке аргументов, подпрограмма отправит его в HTTP POST с заголовком Authorization;если вы оставите это поле пустым (то есть пустым), заголовок будет пропущен.Это важное различие между первым вызовом и вторым вызовом подпрограммы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...