Ошибка AFNetworking: операция не может быть завершена. (Cocoa ошибка 3840.)

Я отправляю почтовый запрос на свой сервер следующим образом:

-(Produkt*)fetchProductByID:(int)idNumber
{

NSString* command = @"fetchProduct";
NSString* number = [NSString stringWithFormat:@"%d",idNumber];
NSMutableDictionary* params =[NSMutableDictionary dictionaryWithObjectsAndKeys:
                              command, @"command",
                              number, @"id",
                              nil];

[self commandWithParams:params onCompletion:^(NSDictionary *json)
 {
     //result returned
     NSDictionary* res = [[json objectForKey:@"result"] objectAtIndex:0];
     NSMutableArray* dics = [[NSMutableArray alloc]init];

     if ([json objectForKey:@"error"]==NULL && [res count]>0)
     {
         //success
         for(int i=0;i<[[json objectForKey:@"result"]count];i++)
         {
             res = [[json objectForKey:@"result"] objectAtIndex:i];
             [dics addObject:res];

             NSLog(@"SPECIAL FETCHED PRODUKT:%@",res);
         }
     }
     else
     {
         //error
         NSLog(@"error:%@",[json objectForKey:@"error"]);
         res = [[json objectForKey:@"result"] objectAtIndex:0];
         NSLog(@"SPECIAL FETCHED PRODUKT:%@",res);
     }

 }];

return NULL;

}

Но я всегда получаю эту ошибку: ошибка: операция не может быть завершена. (Cocoa ошибка 3840.) Код index.php выглядит следующим образом:

<?
 require("lib.php");
require("QMServerAPI.php");

header("Content-Type: application/json");

switch ($_POST['command']) 
{
  case "fetchAllProduct": //Different question
  fetchAllProduct(); 
  break;

  case "fetchProduct":
  fetchProduct($_POST['id']);
  break;

  case "insertProduct":
  insertProduct($_POST['name'], $_POST['artikelNr'],
   $_POST['anleitung'], $_POST['image'], $_POST['editDate'],
   $_POST['id']); 
  break;

  case "updateProduct":
  updateProduc($_POST['name'], $_POST['artikelNr'],
  $_POST['anleitung'], $_POST['image'], $_POST['editDate'],
  $_POST['id']);
  break;
 }
 ?>

Здесь я выполняю команду.:

function errorJson($msg)
{
  header('Content-type: application/json');
  print json_encode(array("error"=>$msg));
  exit();
}

function fetchAllProduct()
{
     //fetch all Products
     $result = query("SELECT * FROM Produkte");
     print json_encode($result);
}

function fetchProduct($id)
{
      //fetch specific product 
      $result  = query("SELECT * FROM Produkte WHERE id = '122'");
      print jeson_encode($result);
 }
  function insertProduct($name, $artikelNr, $anleitung, $image, 
              $editDate, $id)
 {

  }

    function updateProduct($name, $artikelNr, $anleitung, $image, 
              $editDate, $id)
   {
   //update old product
   }
?>

И вот код для функции запроса.:

<?

     //setup db connection
   $link = mysqli_connect("localhost","root","");
   mysqli_select_db($link, "QM");

   //executes a given sql query with the params and returns an array as result
    function query() {
   global $link;
  $debug = false;

   //get the sql query
  $args = func_get_args();
  $sql = array_shift($args);

     //secure the input
    for ($i=0;$i<count($args);$i++) {
      $args[$i] = urldecode($args[$i]);
     $args[$i] = mysqli_real_escape_string($link, $args[$i]);
   }

   //build the final query
  $sql = vsprintf($sql, $args);

  if ($debug) print $sql;

   //execute and fetch the results
      $result = mysqli_query($link, $sql);
     if (mysqli_errno($link)==0 && $result) {

  $rows = array();

  if ($result!==true)
  while ($d = mysqli_fetch_assoc($result)) {
     array_push($rows,$d);
  }

  //return json
  return array('result'=>$rows);

 } else {

  //error
  return array('error'=> $mysqli->error);
 }
}

Я не знаю, что случилось, потому что, когда я просто выбираю все продукты, он отлично работает. Ошибка возникает, когда я использую WHERE.

Спасибо за вашу помощь.

Ответ 1

Cocoa ошибка 3840 является ошибкой синтаксического анализа JSON (если вы просматриваете переполнение стека для нее, вы столкнетесь с этим существующим вопросом).

Я предлагаю вам запустить ваш JSON с вашего веб-сервиса с помощью проверки подлинности JSON, чтобы убедиться, что он действительно соответствует спецификации.