NSURLRequest - закодируйте URL для Тела POST NSURLRequest (цель-C iPhone)

Вы должны использовать rxjs Subject, чтобы выдавать значения всякий раз, когда в сервисном вызове происходит ошибка. Вы должны вызвать метод next().

@Injectable({
  providedIn: 'root'
})
export class Service{
  public notify$ = new Subject<any>();
  doSomething(): Observable<any> {
  return this.http.get<AA>(URL, options).pipe(
     connectToThirdPArtyService();
  }),
   this.notify$.next(true);
  );
}

В вашем компоненте вы должны слушать notify $ subject следующим образом, используя метод subscribe, всякий раз, когда значение выдается с использованием метода next, вызывается метод подписки в вашем компоненте сделать что-то внутри notify$ подписки

export class notification implements OnInit {

  constructor(public service:Service) { }

  ngOnInit() {
    this.service.notify$.subscribe(messages => {  DoSomethig(); });
  }

}
13
задан Corey Floyd 8 October 2010 в 18:28
поделиться

2 ответа

Рассмотрите возможность использования платформы ASIHTTPRequest Бена Копси для генерации и отправки синхронных и асинхронных HTTTP-запросов ( POST и GET):

ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:@"http://someSite.com"] autorelease];
[request setPostValue:@"myValue1" forKey:@"myFormField1"];
[request setPostValue:@"myValue2" forKey:@"myFormField2"];
// etc.
[request start];
NSError *error = [request error];
if (!error)
  NSString *response = [request responseString];

Его каркас очень экономит время.

15
ответ дан 1 December 2019 в 23:16
поделиться

Я не знаю, решает ли это вашу проблему, но

[parameterString length]

часто не равны на длину

[parameterString dataUsingEncoding:NSUTF8StringEncoding]

, потому что UTF8 кодирует символы с различным количеством байтов.

4
ответ дан 1 December 2019 в 23:16
поделиться