Как делают Вас POST к странице с помощью заголовка PHP () функция?

Я думаю, что есть еще одно элегантное решение.

Что вы хотите сделать (безопасно) «передать» тип типичного параметра типа от класса concerete до суперкласса.

Если вы позволяете себе думать о типе класса как «метаданных» в классе, это предполагает метод Java для кодирования метаданных во время выполнения: аннотации.

Сначала определите пользовательскую аннотацию вдоль этих строк :

import java.lang.annotation.*;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface EntityAnnotation {
    Class entityClass();
}

Затем вы можете добавить аннотацию к вашему подклассу.

@EntityAnnotation(entityClass =  PassedGenericType.class)
public class Subclass<PassedGenericType> {...}

Затем вы можете использовать этот код, чтобы получить тип класса в базовом классе:

import org.springframework.core.annotation.AnnotationUtils;
.
.
.

private Class getGenericParameterType() {
    final Class aClass = this.getClass();
    EntityAnnotation ne = 
         AnnotationUtils.findAnnotation(aClass, EntityAnnotation.class);

    return ne.entityClass();
}

Некоторые ограничения этого подхода:

  1. Вы указываете общий тип (PassedGenericType) в двух местах, а не один, не являющийся сухим.
  2. Это возможно только в том случае, если вы можете изменить конкретные подклассы.
20
задан bignose 1 May 2009 в 05:48
поделиться

3 ответа

Функция заголовка используется для передачи заголовков ответа HTTP обратно пользователю (т.е. Вы не можете использовать ее для создания заголовков запроса.

май я спрашиваю, почему Вы делаете это? Почему моделируют запрос POST, когда можно просто тут же и тогда действовать на данные некоторым образом? Я принимаю, конечно, script.php, находится на Вашем сервере.

Для создания запроса POST откройтесь соединение TCP к хосту с помощью fsockopen (), затем используйте fwrite () на обработчике, возвращенном из fsockopen () с теми же значениями, которые Вы использовали в функциях заголовка в OP. С другой стороны, можно использовать ЗАВИХРЕНИЕ.

12
ответ дан 30 November 2019 в 01:16
поделиться

В дополнение к тому, что сказал Служащий, смотрите на классы в ГРУША , существуют классы Запроса HTTP там, что можно использовать, даже если Вам не установили ВИХРЕВОЕ расширение в Вашем распределении PHP.

2
ответ дан 30 November 2019 в 01:16
поделиться
private function sendHttpRequest($host, $path, $query, $port=80){
    header("POST $path HTTP/1.1\r\n" );
    header("Host: $host\r\n" );
    header("Content-type: application/x-www-form-urlencoded\r\n" );
    header("Content-length: " . strlen($query) . "\r\n" );
    header("Connection: close\r\n\r\n" );
    header($query);
}

Это поможет вам сразу

-2
ответ дан 30 November 2019 в 01:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: