C#とPythonでHTTP通信を行い、画像を受け渡すコードを記載します。
■C#側
public class RestClient
{
private static readonly string BASE_URL = "http://localhost:5000";
private HttpClient client = new HttpClient();
public async Task<S> PostAsync<F, S>(F reqData)
{
string url = $"{BASE_URL}/api/data";
string jsonString = JsonSerializer.Serialize(reqData);
var content = new StringContent(jsonString, Encoding.UTF8, "application/json");
HttpResponseMessage response = await client.PostAsync(url, content);
if (response.IsSuccessStatusCode == false) return default(S);
string responseBody = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize<S>(responseBody);
}
}
■Python側
from flask import Flask, jsonify, request
@app.route('/api/data', methods=['POST'])
def post_api_data():
request_data = request.get_json()
img_b64 = request_data['img_b64']
image = Base64Encoder.DecodeImage(img_b64)
response_data = request_data
response_data['img_b64'] = Base64Encoder.EncodeImage(image)
return jsonify(response_data)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
これでC#とPython間で画像の受け渡しができます。
以上!