Wpis z mikrobloga

#programowanie #csharp #php

Miry, wiecie może jak odczytać CookieContainer zapisany przez C# w PHP?
Ogólnie apka napisana w C# zwraca plik .cookie, który jest najprawdopodobniej binarką, ale po próbie przetworzenia go na string/json otrzymuję jakieś dziwne znaki, a chciałbym otrzymać json lub w ostateczności string do sformatowania.

=== KOD C# Z OPEN SOURCE I ON DO ZMIANY NIE JEST ===
using System.Runtime.Serialization.Formatters.Binary;

public static void WriteToFile(string file, CookieContainer c) {
var formatter = new BinaryFormatter();
formatter.Serialize(stream, c);
}

=== KOD PHP ===
$filename = 'nazwa_pliku.cookie';
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
echo $contents;
  • 4
@Pieczor: Jeśli kod w C# jest nie do ruszenia to raczej czeka cię ciężka przeprawa bo widać używana jest serializacja binarna.
Najłatwiej byłoby użyć w C# jsonserializer, datacontractserializer, xmlserializer to byś dostał z miejsca to co potrzebujesz.
A tak musisz chyba przeanalizować protokół i napisać swój deserializer. Chyba, że istnieją jakieś konwertery.

To może ci się przydać
https://msdn.microsoft.com/en-us/library/cc236844.aspx
http://stackoverflow.com/questions/3052202/how-to-analyse-contents-of-binary-serialization-stream