Как закрыть функцию submitRequest в U2/Universe

Я искал везде в руководстве U2 Universe, но я не вижу ни одного примера того, как закрыть соединение после вызова функции submitRequest. Кто-нибудь знает?


person user3464522    schedule 01.08.2014    source источник
comment
Пожалуйста, опубликуйте фрагмент кода, показывающий, где вы вызываете submitRequest.   -  person webthaumaturge    schedule 02.08.2014
comment
Ниже приведен код кода, если errCode равен 0, он вызывает следующий оператор в программе. Строка 232: errCode = setHTTPDefault(версия, 1.1) Строка 250: errCode = creteSecurityContext(securityContext, версия) Строка 268: errCode = addAuthenticationRule(securityContext, 2, VerificationStrength, щедрый) Строка 288: errCode = createSecureRequest(mandrillPostUrl, httpMethod, requestHandle, securityContext) Строка 306: errCode = submitRequest(requestHandle, httpTimeOut, mandrillDcdRec, responseHeaders, responseData, httpStatus)   -  person user3464522    schedule 15.08.2014


Ответы (1)


Нет необходимости закрывать соединение, потому что отключение (и подключение) встроено в submitRequest.

Если вы включите ведение журнала протокола, то увидите, что после прочтения всего ответа Universe закрывает соединение как часть submitRequest:

0574: 11/23/2010 16:18:41 [ 7440 6596 ] SSL read: status=NONE,len=7866
0575: 11/23/2010 16:18:41 [ 7440 6596 ] Socket 23dbe20: 7866 chars read
0576: 11/23/2010 16:18:41 [ 7440 6596 ] HTTP_MOREDATA: bytes_read=7866, total_re
ad=16058, bytes_remainig=0
0577: 11/23/2010 16:18:41 [ 7440 6596 ] HTTP_MOREDATA: data completely read
0578: 11/23/2010 16:18:41 [ 7440 6596 ] HTTP_FINISH
0579: 11/23/2010 16:18:41 [ 7440 6596 ] in destroySocket(): socket 23dbe20 refs=
1
0580: 11/23/2010 16:18:41 [ 7440 6596 ] Socket 23dbe20 closed and freed: 0(No er
ror) 0(No error)
0581: 11/23/2010 16:18:41 [ 7440 6596 ] Host 23711e0 freed

Вы также можете увидеть, как Universe открывает соединение как часть submitRequest:

0067: 11/23/2010 16:18:39 [ 7440 6596 ] HTTP_START: timeout=60000
0068: 11/23/2010 16:18:39 [ 7440 6596 ] HTTP_CONNECT
0069: 11/23/2010 16:18:39 [ 7440 6596 ] new host 23711e0:www.example.org:4
43 allocated (proxy:no)
0070: 11/23/2010 16:18:39 [ 7440 6596 ] host www.example.org:443 not found
 in hostList
0071: 11/23/2010 16:18:39 [ 7440 6596 ] socket 23dbe20 allocated
0072: 11/23/2010 16:18:39 [ 7440 6596 ] start SSLbinding ...

В качестве полезной справки, вот пример того, как включить ведение журнала протокола:

LOGRECORDID = "MY_LOG_IN_THE_ROOT_OF_THE_ACCOUNT.LOG"
RESULT = protocolLogging(LOGRECORDID,"ON",10)
ERROR = submitRequest(requestHandle, httpTimeOut, mandrillDcdRec, responseHeaders, responseData, httpStatus)
RESULT = protocolLogging(LOGRECORDID,"OFF",0)
person webthaumaturge    schedule 15.08.2014
comment
Спасибо webthaumaturge за информацию. Мне также нужно изменить заголовки на application/json, поэтому я использовал следующий API, но, похоже, он не работает. Я делаю это правильно? errCode=setRequestHeader(requestHandle, Content-Type, application/json) - person user3464522; 12.09.2014
comment
Это выглядит правильно для установки заголовка. Вы, вероятно, уже знаете это, но убедитесь, что вы используете этот код перед запуском submitRequest(). Пожалуйста, опубликуйте результат регистрации протокола, если у вас по-прежнему возникают проблемы. - person webthaumaturge; 15.09.2014