 
             let statusText = status.flatMap({ $0 }).joined(separator: " ")
             parameters["status"] = statusText
-            
+
             switch mediaType {
-                
+
             case .url(_):
-                
+
                 let urlString = "https://api.weibo.com/2/statuses/update.json"
-                
+
                 sharedMonkeyKing.request(urlString, method: .post, parameters: parameters) { (responseData, HTTPResponse, error) in
-                    if let json = responseData, let _ = json["idstr"] as? String {
-                        completionHandler(true)
-                    } else {
+                    var reponseError: NSError?
+                    if (responseData == nil) || (responseData!["idstr"] as? String == nil) {
+                        let failureReason = responseData ?? ["error": "Can't connect api.weibo.com."]
+                        let userInfo: [AnyHashable: Any]  = [NSLocalizedDescriptionKey: "Weibo share failed.",
+                                                             NSLocalizedFailureReasonErrorKey: failureReason]
+                        reponseError = NSError(domain: "com.monkeyking.weibo", code: -4, userInfo: userInfo)
                         print("responseData \(responseData) HTTPResponse \(HTTPResponse)")
-                        completionHandler(false)
                     }
-                }
-                
+                    completionHandler(reponseError)
+
+                }
+
             case .image(_):
-                
+
                 let urlString = "https://upload.api.weibo.com/2/statuses/upload.json"
-                
+
                 sharedMonkeyKing.upload(urlString, parameters: parameters) { (responseData, HTTPResponse, error) in
-                    if let json = responseData, let _ = json["idstr"] as? String {
-                        completionHandler(true)
-                    } else {
+                    var reponseError: NSError?
+
+                    if (responseData == nil) || (responseData!["idstr"] as? String == nil) {
+                        let failureReason = responseData ?? ["error": "Can't connect api.weibo.com."]
+                        let userInfo: [AnyHashable: Any]  = [NSLocalizedDescriptionKey: "Weibo share failed.",
+                                                             NSLocalizedFailureReasonErrorKey: failureReason]
+                        reponseError = NSError(domain: "com.monkeyking.weibo", code: -4, userInfo: userInfo)
                         print("responseData \(responseData) HTTPResponse \(HTTPResponse)")
-                        completionHandler(false)
                     }
-                }
-                
+
+                    completionHandler(reponseError)
+                }
+
             case .audio:
                 fatalError("web Weibo not supports Audio type")
             case .video:

        public enum AlipaySubtype {
            case friends(info: Info)
            case timeline(info: Info)
            
            var scene: NSNumber {
                switch self {
                case .friends:

                case .image(let image):

                    guard let imageData = UIImageJPEGRepresentation(image, 0.7) else {
                        let userInfo = [NSLocalizedDescriptionKey: "Represent image failed."]
                        let error = NSError(domain: "com.monkeyking.error", code: -5, userInfo: userInfo)
                        completionHandler(error)
                        return
                    }

