POST로 json데이터를 전달할 때,


서버 트리를 가지는 구조를 전달하면 400 bad request 를 리턴한다.


문제가 되는 구조는 아래와 같다. 


{ "msg" : { "to": "you", "from":"me"}}


text/plain으로 지정해서 보내봤지만 에러는 계속 발생한다. 



이를 아래와 같은 단일 구조로 만들어서 보내야 한다.


{"msgTo": "you", "msgFrom":"me"}




'개발/경험 > AWS' 카테고리의 다른 글

API Gateway 호출 시 400 Bad request error  (0) 2018.06.11
REST API post 호출 안될 때  (0) 2018.06.02
auto export for mobile analytics  (0) 2018.03.28

출처 링크 : https://developers.facebook.com/bugs/965852950229310/


facebook unity sdk로 제공되는 package 를 다운받아 설치해서 xcode에서 빌드하면 .... in Bulk_Facebook.Unity.Canvas_O.o 가 포함된 에러를 출력한다.


Facebook.Unity.Canvas는 WebGL을 위한 코드인데 이 코드에서 문제가 발생한다.


해결책은 아래.


1. download source. https://github.com/facebook/facebook-sdk-for-unity 2. Open solution VisualStudio (mac or window). 3. Remove all code of namespace. 'Facebook.Unity.Canvas' (WebGL) 4. Rebuild "Facebook.Unity" -> Facebook.Unity.dll 5. Replace new Facebook.Unity.dll to "/Assets/FacebookSDK/Plugins/Facebook.Unity.dll"


VISUAL STUDIO 2017에서 UNITY Lib로 빌드하려면 UnityEngine.DLL을 참조해야 한다.


솔루션 탐색기의 메뉴 중 "추가" > "참조"에서 "찾아보기" 누른 후 "C:\Program Files\Unity\Editor\Data\Managed" (이 경로는 유니티를 설치한 위치에 따라 다를 수 있다.) 에서 UnityEngine.dll을 선택하면 됩니다.


이후 Facebook.Unity.Canvas를 삭제 후 Facebook.Unity를 릴리즈 버전으로 재빌드한다. (Gameroom도 같이 삭제해도 됨.)


빌드된 dll을 "Assets\FacebookSDK\Plugins"에 덮어씌운 후 빌드하면 됨.



Assets/Plugins/Android에 있는 AndroidManifest.xml 파일을 열어 아래 붉은 라인을 추가한다.


<manifest

    xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    package="com.amazonaws.unity"

    android:installLocation="preferExternal"

    android:versionCode="1"

    android:versionName="1.0">



tools로 붙은 태그는 빌드 시 적용되지 않는다. 툴 내부용 혹은 preview에만 적용되는 태그들이다. 


왜 이 태그를 구글에서는 포함하지 않고 AndroidManifest.xml를 만드는지 모르겠지만 (범용으로 사용되는 내용은 아닌 듯...), 구글링 해보면 아래와 같은 문구를 찾을 수 있다. 


It defines the XML namespace of the document. You should put it, otherwise tags like <RelativeLayout> could be not recognied by the parser.


요약하자면 이 테그가 없으면, 툴에서 AndroidManifest.xml 파일을 머지 할 때 문제가 발생하는 듯 하다. 

Facebook Unity SDK 6.0 을 받아 패키지를 설치하고, 샘플을 돌려보는데 아래와 같은 에러가 발생


Could not securely load assembly from 

https://integrated-plugin-canvas-rsrc.fbsbx.com/rsrc/unity/lib/sdk_6.0/CanvasFacebook.dll


FB.cs 파일 line 411에 전처리기 "#if UNITY_4_5" 를 찾아 그 뒤에 " || UNITY_4_6 || UNITY_5_0 || UNITY_5" 를 붙여줄 것! 현재 버전 define만 붙여도 됨.




http://forum.unity3d.com/threads/facebook-sdk-assembly-cannot-be-loaded.264126/


커뮤니티에서 해결책을 찾았는데, 불편하게 개발자가 꼭 수정해야 되나 --; 


배포 버전 수정해서 올려주면 좋을텐데 --

(windows 환경)


nodejs에서 80포트 열어 쓰던 어플이 있는데, 어느날 갑자기


error: listen EACCES 0:0:0:0:80 에러를 뱉으면서 안된다. --a


netstat -ano 하면 ip,port 그리고 해당 포트를 사용하는 PID를 볼 수 있다. 


찾아보니 4 ... System이 쓰고 있다고. -- ㅁ.... 모지..


이래저래 찾아보니.. 최근에 로컬에 mssql을 설치했는데.. 


SQL Server Reporting Services가 내부적으로 80포트를 쓰고 있었네 --;


서비스 중지 시키니 잘 돌아감. 


휴 ~ 



예를들어 sp를 사용할 때, 내가 조회하는 테이블에 seqIndex라는 컬럼이 있고,


쿼리문은 아래와 같다고 가정한다.


insert into tbTable_Backup (seqIndex) select @seqIndex from tbTable where index=@inp_index;


tbTable과 tbTable_Backup은 같은 구조로 되어 있으며,


tbTable은 seqIndex bigint 컬럼 하나만 가지고 있다고 가정한다.


위 쿼리에서 원래는 서브쿼리인 select문은, 아래의 코드가 원래 의도했던 바다.


insert into tbTable_Backup (seqIndex) select seqIndex from tbTable where index=@inp_index;


이 경우, 


Query Browser 든, WorkBench든 문법 오류를 발생하지 않는다.


(컬럼 이름과 변수명이 틀린다고 해도 오류를 발생하지는 않음.)


sp를 사용할 때는 더 황당해 지는데, SQLExecute를 실행해도 오류는 발생하지 않는다.



output 값이 없을 경우, 이런 에러에 대해서는 대처할 방안이 없다. 


또한 output 값이 있어도 정상적인 output값을 리턴하지 않는다.


지정된 output값에는 @seqIndex값이 들어가 있을 것이다. 


output 변수의 이름이 @seqIndex가 아니어도...


단순 오타에서 비롯된 문제긴 했지만, 


mysql에서 어떻게 이런 코드가 output값에 영향을 미쳤는지 찾아봐야 할 듯.









+ Recent posts