Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
white49
Alamofire
提交
7bfc0c41
A
Alamofire
项目概览
white49
/
Alamofire
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
Alamofire
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7bfc0c41
编写于
6月 21, 2015
作者:
C
Christian Noon
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Multipart form data now exposes boundary and no longer requires string encoding.
上级
545be1d5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
18 addition
and
20 deletion
+18
-20
Source/MultipartFormData.swift
Source/MultipartFormData.swift
+18
-20
未找到文件。
Source/MultipartFormData.swift
浏览文件 @
7bfc0c41
...
...
@@ -63,23 +63,23 @@ public class MultipartFormData {
case
Initial
,
Encapsulated
,
Final
}
static
func
randomBoundary
Key
()
->
String
{
static
func
randomBoundary
()
->
String
{
return
String
(
format
:
"alamofire.boundary.%08x%08x"
,
arc4random
(),
arc4random
())
}
static
func
boundaryData
(
#boundaryType
:
BoundaryType
,
boundary
Key
:
String
,
stringEncoding
:
NSStringEncod
ing
)
->
NSData
{
let
boundary
:
String
static
func
boundaryData
(
#boundaryType
:
BoundaryType
,
boundary
:
Str
ing
)
->
NSData
{
let
boundary
Text
:
String
switch
boundaryType
{
case
.
Initial
:
boundary
=
"--
\(
boundaryKe
y
)\(
EncodingCharacters
.
CRLF
)
"
boundary
Text
=
"--
\(
boundar
y
)\(
EncodingCharacters
.
CRLF
)
"
case
.
Encapsulated
:
boundary
=
"
\(
EncodingCharacters
.
CRLF
)
--
\(
boundaryKe
y
)\(
EncodingCharacters
.
CRLF
)
"
boundary
Text
=
"
\(
EncodingCharacters
.
CRLF
)
--
\(
boundar
y
)\(
EncodingCharacters
.
CRLF
)
"
case
.
Final
:
boundary
=
"
\(
EncodingCharacters
.
CRLF
)
--
\(
boundaryKe
y
)
--
\(
EncodingCharacters
.
CRLF
)
"
boundary
Text
=
"
\(
EncodingCharacters
.
CRLF
)
--
\(
boundar
y
)
--
\(
EncodingCharacters
.
CRLF
)
"
}
return
boundary
.
dataUsingEncoding
(
s
tringEncoding
,
allowLossyConversion
:
false
)
!
return
boundary
Text
.
dataUsingEncoding
(
NSUTF8S
tringEncoding
,
allowLossyConversion
:
false
)
!
}
}
...
...
@@ -100,28 +100,26 @@ public class MultipartFormData {
// MARK: - Properties
/// The `Content-Type` header value containing the boundary used to generate the `multipart/form-data`.
public
var
contentType
:
String
{
return
"multipart/form-data;
boundary=
\(
self
.
boundaryKe
y
)
"
}
public
var
contentType
:
String
{
return
"multipart/form-data;
boundary=
\(
self
.
boundar
y
)
"
}
/// The content length of all body parts used to generate the `multipart/form-data` not including the boundaries.
public
var
contentLength
:
UInt64
{
return
self
.
bodyParts
.
reduce
(
0
)
{
$0
+
$1
.
bodyContentLength
}
}
private
let
stringEncoding
:
NSStringEncoding
private
let
boundaryKey
:
String
/// The boundary used to separate the body parts in the encoded form data.
public
let
boundary
:
String
private
var
bodyParts
:
[
BodyPart
]
private
let
streamBufferSize
:
Int
// MARK: - Lifecycle
/**
Creates a multipart form data object with the given string encoding.
:param: stringEncoding The string encoding used to encode the data.
Creates a multipart form data object.
:returns: The multipart form data object.
*/
public
init
(
stringEncoding
:
NSStringEncoding
)
{
self
.
stringEncoding
=
stringEncoding
self
.
boundaryKey
=
BoundaryGenerator
.
randomBoundaryKey
()
public
init
()
{
self
.
boundary
=
BoundaryGenerator
.
randomBoundary
()
self
.
bodyParts
=
[]
/**
...
...
@@ -418,7 +416,7 @@ public class MultipartFormData {
}
headerText
+=
EncodingCharacters
.
CRLF
return
headerText
.
dataUsingEncoding
(
self
.
s
tringEncoding
,
allowLossyConversion
:
false
)
!
return
headerText
.
dataUsingEncoding
(
NSUTF8S
tringEncoding
,
allowLossyConversion
:
false
)
!
}
private
func
encodeBodyStreamDataForBodyPart
(
bodyPart
:
BodyPart
)
->
EncodingResult
{
...
...
@@ -606,15 +604,15 @@ public class MultipartFormData {
// MARK: - Private - Boundary Encoding
private
func
initialBoundaryData
()
->
NSData
{
return
BoundaryGenerator
.
boundaryData
(
boundaryType
:
.
Initial
,
boundary
Key
:
self
.
boundaryKey
,
stringEncoding
:
self
.
stringEncoding
)
return
BoundaryGenerator
.
boundaryData
(
boundaryType
:
.
Initial
,
boundary
:
self
.
boundary
)
}
private
func
encapsulatedBoundaryData
()
->
NSData
{
return
BoundaryGenerator
.
boundaryData
(
boundaryType
:
.
Encapsulated
,
boundary
Key
:
self
.
boundaryKey
,
stringEncoding
:
self
.
stringEncoding
)
return
BoundaryGenerator
.
boundaryData
(
boundaryType
:
.
Encapsulated
,
boundary
:
self
.
boundary
)
}
private
func
finalBoundaryData
()
->
NSData
{
return
BoundaryGenerator
.
boundaryData
(
boundaryType
:
.
Final
,
boundary
Key
:
self
.
boundaryKey
,
stringEncoding
:
self
.
stringEncoding
)
return
BoundaryGenerator
.
boundaryData
(
boundaryType
:
.
Final
,
boundary
:
self
.
boundary
)
}
// MARK: - Private - Errors
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录