Огромный URL в запросе curl

#php #curl #sms

#php #curl #sms

Вопрос:

я должен отправить параметры с помощью get на URL.

Это sms-шлюз, и я должен передавать информацию по sms.

 $url = 'http://host:port/send?user=useramp;from=fromamp;to=to1 to2 to3 ........ to1000 text=smstext';
  

где to1, to2 … to1000 — номера телефонов получателей.

Итак, я использую curl для выполнения задания.

Проблема в том, что из-за большой длины моих параметров, когда у меня много получателей, URL, который я вызываю, огромен, и я получаю ошибку за превышение максимальной длины URL.

Я мог бы разделить получателей на меньшие пакеты и вызывать curl для каждого пакета, но я не думаю, что это лучшее решение.

Кроме того, такой большой URL заставляет меня чувствовать, что что-то делается не так правильно, как могло бы.

У вас есть идея по этому поводу?

P.S: Использование post вместо get — это не вариант.

Комментарии:

1. Я не думаю, что sms-шлюзу понадобилось бы несколько вызовов

Ответ №1:

P.S: Использование post вместо get — это не вариант.

Если вызов завершается неудачей из-за того, что URL слишком длинный, использование POST действительно является единственным доступным вариантом.

В качестве альтернативы, как вы говорите, вам придется разделить все это на несколько вызовов.

Хотя это звучит как ошибка проектирования со стороны шлюза. Вы на 100% уверены, что они не поддерживают запросы POST? Это был бы самый чистый способ добиться этого.

Комментарии:

1. Да, я уверен. Нет опции post.

2. @Tania тогда я бы спросил их, как они ожидают, что вы укажете сотни или тысячи отправителей. Если это не сделано специально, это довольно глупая ошибка дизайна с их стороны.