# RegisterConverter
`RegisterConverter(Name, MediaType, ConvertCallback, ParseCallback, [Instance], [ParseType])`
`Name`-`{String}` 与`CustomRequestFormat`或`CustomResponseFormat`一起使用的转换器的名称
`MediaType`-`{String}` 用于`Content-Type`和`Accept`标头的媒体类型
`ConvertCallback`-`{String}` 用于转换的全局或对象函数名称
`ParseCallback`-`{String}` 用于解析的全局或对象函数名称
`Instance`-`{Object}` *可选* 使用`ConvertCallback`和`ParseCallback`的实例方法
`ParseType`-`{String}` *可选* `"String"`(默认)或`"Binary"`将原始二进制响应传递给`ParseCallback`
注册自定义转换器以转换请求`Body`和响应`Content`。 如果`ConvertCallback`或`ParseCallback`是对象方法,则传入一个对象实例。 如果`ParseCallback`需要原始二进制响应值(例如文件下载),则设置`ParseType ="Binary"`,否则使用`"String"`。
* `ConvertCallback` signature: `Function ...(Value As Variant) As String`
* `ParseCallback` signature: `Function ...(Value As String) As Object`
~~~vb
'// 1. 使用全局模块函数进行转换和分析
'// ---
'// Module: CSVConverter
Function ParseCSV(Value As String) As Object
'// ...
End Function
Function ConvertToCSV(Value As Variant) As String
'// ...
End Function
WebHelpers.RegisterConverter "csv", "text/csv", _
"CSVConverter.ConvertToCSV", "CSVConverter.ParseCSV"
'// 2. 使用转换和分析的对象实例函数
'// ---
'// Object: CSVConverterClass
'// 与上述相同...
Dim Converter As New CSVConverterClass
WebHelpers.RegisterConverter "csv", "text/csv", _
"ConvertToCSV", "ParseCSV", Instance:=Converter
'// 3. 将原始二进制值传递给ParseCallback
'// ---
'// Module: ImageConverter
Function ParseImage(Bytes As Variant) As Object
'// ...
End Function
Function ConvertToImage(Value As Variant) As String
'// ...
End Function
WebHelpers.RegisterConverter "image", "image/jpeg", _
"ImageConverter.ConvertToImage", "ImageConverter.ParseImage", _
ParseType:="Binary"
~~~
- README
- 指南
- 概述
- GET Request
- WebRequest
- 属性
- Resource
- Method
- Body
- Format
- RequestFormat
- ResponseFormat
- CustomRequestFormat
- CustomResponseFormat
- ContentType
- Accept
- ContentLength
- FormattedResource
- Cookies
- Headers
- QuerystringParams
- UrlSegments
- 方法
- AddHeader
- SetHeader
- AddUrlSegment
- AddQuerystringParam
- AddCookie
- AddBodyParameter
- CreateFromOptions
- WebClient
- 属性
- BaseUrl
- Authenticator
- TimeoutMs
- ProxyServer
- ProxyBypassList
- ProxyUsername
- ProxyPassword
- EnableAutoProxy
- Insecure
- FollowRedirects
- 方法
- Execute
- GetJson
- PostJson
- SetProxy
- GetFullUrl
- WebResponse
- 属性
- StatusCode
- StatusDescription
- Content
- Data
- Body
- Headers
- Cookies
- 方法
- Update
- WebHelpers
- 属性
- WebStatusCode
- WebMethod
- WebFormat
- UrlEncodingMode
- EnableLogging
- 方法
- LogDebug
- LogWarning
- LogError
- LogRequest
- LogResponse
- Obfuscate
- ParseJson
- ConvertToJson
- ParseUrlEncoded
- ConvertToUrlEncoded
- ParseXml
- ConvertToXml
- ParseByFormat
- ConvertToFormat
- UrlEncode
- UrlDecode
- Base64Encode
- Base64Decode
- RegisterConverter
- JoinUrl
- UrlParts
- CloneDictionary
- CloneCollection
- CreateKeyValue
- FindInKeyValues
- AddOrReplaceInKeyValues
- FormatToMediaType
- MethodToName
- HMACSHA1
- HMACSHA256
- MD5
- CreateNonce
- IWebAuthenticator
- 方法
- BeforeExecute
- AfterExecute
- PrepareHttp
- PrepareCurl
- WebAsyncWrapper
- 属性
- Client
- 方法
- ExecuteAsync
- 范例
- Salesforce网站
- Google APIs
- Todoist API
- 其他主题
- 调试
- 授权
- 实现自己的IWebAuthenticator
- Url编码
