ios - 重定向 iOS MDM native 代理

标签 ios http redirect mobile mdm

我观察到 iOS MDM native 代理的一种奇怪但一致的行为。

当我们通过响应 HTTP 301、302 或 307 将其重定向到另一个 URL 时,代理已将其 HTTP PUT 动词更改为 GET,同时完全丢弃 HTTP 请求正文。

例如,这是设备对 [URL-1] 的第一个 HTTP 请求:

PUT [URL-1] HTTP/1.1
Host: [HOST]
User-Agent: MDM/1.0
Content-Length: 306
Accept: */*
Content-Type: application/x-apple-aspen-mdm
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: keep-alive
Proxy-Connection: keep-alive

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
       <key>Status</key>
       <string>Idle</string>
       <key>UDID</key>
       <string>86ff0b7c0129f1c1ed4ff36984c1a2a3e5e06c81</string>
</dict>
</plist>

我们已响应 HTTP 301 并将其重定向到 [URL-2]:

HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=UTF-8
Location: [URL-2]
X-Powered-By: ASP.NET
Date: Tue, 10 Jul 2012 10:48:31 GMT
Content-Length: 182
<head><title>Document Moved</title></head>
<body><h1>Object Moved</h1>This document may be found <a HREF="[URL-2]">here</a></body>

设备已使用此 HTTP 请求访问 [URL-2](将 HTTP 动词更改为 GET 并删除了 完整的 HTTP 主体):

GET [URL-2] HTTP/1.1
Host: [HOST]
User-Agent: MDM/1.0
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: keep-alive
Proxy-Connection: keep-alive

MDM native 代理是否支持 HTTP 重定向? 如果是,我们需要更改什么才能使其不丢弃 HTTP 正文并且不更改 HTTP PUT 动词?

最佳答案

它支持有异常(exception)的 HTTP 重定向。改用安全层进行重定向。

关于ios - 重定向 iOS MDM native 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11535417/

相关文章:

ios - 保存/恢复自动续订收据,不重复

php - 发布 HTML 表单后重定向

ios - coredata-MO 修改反射(reflect) PS 中每个现有记录

ios - 用不同的颜色填充 iOS Tabbar 图标

iOS HTTP 发布 : Request Successful Connection; Nothing happens

http - PUT 和 DELETE HTTP 请求方法有什么用?

php - 使用 .htaccess 进行多 url 重定向

wordpress - 如何将用户的IP重定向到网站IP?

ios - 准备segue不发送所有信息(Swift)

http - 如何使用 HttpClient 处理 post 方法中的重定向?