2017-04-04 1 views
0

C# 코드가 요청을 다른 URL로 리디렉션해야하는 내 API 서비스 (PHP)를 호출하고 반환하기 전에 응답을 처리합니다. proxy.php에서내용이있는 다른 URL로 리디렉션

HttpWebRequest request = null; 
WebResponse response = null; 
Stream writer = null; 

request = (HttpWebRequest)WebRequest.Create(http://www.somewhere.com/proxy.php); 
request.Method = "POST"; 
request.ContentType = "multipart/form-data; boundary=" + this.builder.Boundry; 

this.builder.RequestStream.Position = 0; 
byte[] tempBuffer = new byte[this.builder.RequestStream.Length]; 
this.builder.RequestStream.Read(tempBuffer, 0, tempBuffer.Length); 

writer = await request.GetRequestStreamAsync().ConfigureAwait(false); 
writer.Write(tempBuffer, 0, tempBuffer.Length); 
writer = null; 

response = await request.GetResponseAsync().ConfigureAwait(false); 

그리고 :

<?php 
    // 1. Redirect everything (with the content stream from the C# code) to http://www.elsewhere.com 
    // 2. Process the response from http://www.elsewhere.com 
    // 3. Return processed data to my C# code 
?> 

나는이 어떻게 할 수있는

여기 내 C# 코드는?

<?php 
    header("Location: http://www.somesite.com/another_page.php"); 
    exit(); 
?> 

상관없이 발신자 프로그램은 C# 또는 다른 하나는 : 다른 페이지로 리디렉션 당신은 PHP에 위치 헤더를 사용할 수 있습니다

writer = await request.GetRequestStreamAsync().ConfigureAwait(false); 
writer.Write(tempBuffer, 0, tempBuffer.Length); 
+0

http://php.net/manual/en/function.header.php – mkaatman

+0

왜 처음부터 elsewhere.com에 전화하지 않으시겠습니까? –

+0

'proxy.php'는 elsewhere.com의 응답을 받아서 C# 코드로 반환하기 전에 변경해야하기 때문에. – Darius

답변

0

: 내가이 줄에 넣어 요청 스트림을 리디렉션 할 필요가 언어.

+0

내 C# 응용 프로그램으로 돌아 가기 전에 응답을 처리 할 수 ​​없으므로 작동하지 않습니다. – Darius

+0

테스트 해 보셨습니까? –

+0

' ' – Darius

0

반환하기 전에 결과를 처리하려면 PHP 측에서 cURL과 같은 것을 사용해야합니다. 여기

또한 PHP 구성에 따라 달라집니다 이것은, 일부 설치가 설치 컬 모듈/사용할 수없는 데이터

function getData(){ 
    $curl = curl_init("http://thewebsite.com/api/whatever"); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    $data = curl_exec($curl); 
    curl_close($curl); 
    return $data; 
} 

를 얻기 위해 컬을 사용하는 예입니다.

+0

여기에 몇 가지 좋은 cURL 예제가있는 또 다른 질문입니다. http://stackoverflow.com/questions/9802788/call-a-rest-api-in-php – MrZander

+0

요청 스트림에 배치 한 콘텐츠 (내 C# 코드에서) 컬 호출에 포함됩니까? 아니면 그것을 실행하기 전에 수동으로 추가해야합니까? – Darius

+0

@Darius 수동으로 추가해야합니다. PHP 스크립트를 실행하는 서버에서 시작된 완전히 새로운 API 호출입니다. – MrZander

관련 문제